В моем компоненте 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
, почему она не работает? И почему работает только при вызове вывода из текущего компонента? `