0
- 在改變在輸入框中的文本,標題更新到 消息轉換爲大寫。
- 在按下發送按鈕被打印在 控制檯更新消息
結果:
- 不工作。控制檯中的錯誤說'this'在函數textBoxChange中是未定義的。 (它在渲染功能,但不是在textBoxChange函數定義?)
Codepen:https://codepen.io/r11na/pen/qNKpQX
class App extends React.Component {
textBoxChange(e) {
this.props.text = e.target.value;
};
sendMessage(e) {
console.log("Send message:" + this.props.text);
};
render() {
return (
<div>
<h3>Your Message: {this.props.text.toUpperCase()}</h3>
<MessageBox textBoxChange={this.textBoxChange} sendMessage={this.sendMessage} text={this.props.text}/>
</div>
);
};
};
const MessageBox = (props) => {
return (
<div className="row column">
<textarea onChange={props.textBoxChange} value={props.text}></textarea>
<button onClick={props.sendMessage} className="button">Send</button>
<br/>
</div>
);
};
首先你需要使用'states'而不是'props' - https://codepen.io/anon/pen/XKYEVG。,因爲你不能給'props'分配新的值。 –
感謝亞歷山大是有道理的! – Riina