通信問題
組件會發(fā)生三種通信。
- 向子組件發(fā)消息
- 向父組件發(fā)消息
- 向其他組件發(fā)消息
React 只提供了一種通信手段:傳參。對于大應用,很不方便。
#組件通信的例子
#步驟1
class Son extends React.Component {
render() {
return <input/>;
}
}
class Father extends React.Component {
render() {
return <div>
<Son/>
<p>這里顯示 Son 組件的內(nèi)容</p>
</div>;
}
}
ReactDOM.render(<Father/>, mountNode);
看這個例子,想一想父組件如何拿到子組件的值。
#步驟2
class Son extends React.Component {
render() {
return <input onChange={this.props.onChange}/>;
}
}
class Father extends React.Component {
constructor() {
super();
this.state = {
son: ""
}
}
changeHandler(e) {
this.setState({
son: e.target.value
});
}
render() {
return <div>
<Son onChange={this.changeHandler.bind(this)}/>
<p>這里顯示 Son 組件的內(nèi)容:{this.state.son}</p>
</div>;
}
}
ReactDOM.render(<Father/>, mountNode);