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 组件的内容:{this.state.son}</p>
</div>;
}
}
ReactDOM.render(<Father/>, mountNode);
子组件直接改变父组件传入的props值是不被允许,但是可以通过父组件传入一个改变状态的函数,然后在子组件中进行函数的调用,即可实现。
实例中,
1.在父组件中定义了一个状态son,用于接收子组件中状态的变化。
2.在父组件中定义了一个函数changeHandler,绑定在子组件的onChange属性上,因此在子组件中onChange属性可以通过this.props.onChange去调用父组件中这个改变状态的函数。从而,实现父组件可以获取到子组件的值的变化。
另一个实例,转载自博主:治愈系的江予夺