我有一个带有子组件的表格,该表格呈现为表格。
ParentComponent extends React {
state = {
anArray: []
}
<ParentComponent>
<table>
map ( thing => <ChildComponent {someFunction= this.updateFunction;} />
ChildComponent将数据映射到单个TD时。在ChildComponent的onChange中,我正在调用
onChange = this.props.someFunction();
并且代码达到了我的断点,这很棒。它在ParentComponent中调用someFunction。在someFunction中,我试图访问父对象的状态,以便可以将onChanged TD与数组中的正确索引进行匹配,但我无法定义。
someFunction(id) {
const index = this.state.anArray.findIndex( x => x.id === id) ;
if (index === -1)
// handle error
console.log("DIDN'T FIND ID: " + id);
});
}
为什么我不能从ChildComponent访问函数调用的状态?我希望能够访问它。
答案 0 :(得分:0)
从发布的代码中尚不清楚,但是我想您尚未绑定someFunction
,并且具有子级的上下文,而不是父级的上下文。
ParentComponent extends React {
constructor(props){
super(props)
this.someFunction = this.someFunction.bind(this)
}
someFunction(){
...
}
render(){
...
}
}
如果您有必要的babel插件,您甚至可以
ParentComponent extends React {
someFunction = () => {
...
}
render(){
...
}
}