我的 React 组件中有以下代码:
class TheComponent extends Component{
constructor(props) {
super(props);
this.state = {
a: '',
b: ''
};
}
output = (data) => {
this.setState({
a: data.a,
b: data.b
});
}
render(){
return(<ChildrenComponent outputValues={this.output.bind(this)}/>);
}
}
当我从同一个组件调用该output
方法时,它运行良好,并且状态更改成功。但是当我从我那里调用它时ChildrenComponent
它不起作用,并且状态永远不会改变。
所以我在output
函数中添加了以下代码,以了解发生了什么:console.log(this.setState)
. 结果是“setState”函数在那里。
那么,如果函数setState
正确绑定到output
,为什么它不起作用?为什么它只有在从当前组件调用输出时才有效?`