我将我的函数发送到子组件callBack
。在父级中,我有一个函数setState
method:
onInputUpdated(id){
var array = {};
let char = id.slice(-1);
console.log(this.state.states)
switch(char){
case 'a':
array[id] = this.getY(ReactDOM.findDOMNode(this.refs[id].refs.inp).value);
break;
case 'b':
array[id] = this.getX(ReactDOM.findDOMNode(this.refs[id].refs.inp).value);
break;
}
let oldStates = this.state.states;
oldStates[id] = array[id];
this.setState({
states: oldStates
});
console.log(oldStates);
}
Where states
是一个对象。
在这之后,states
已设置。我可以在下一个中看到它callBack
,我有打印到控制台。但是,那render
方法未被调用。期间componentMount
,一切都正确呈现。
该怎么办?谢谢。
当你这样做时let oldStates = this.state.states;
你只是在做oldStates
变量的引用this.state.states
,所以你在调用之前有效地改变了状态setState
.
例如,尝试复制它let oldStates = Object.assign({}, this.state.states
,或使用lodash https://lodash.com/docs#cloneDeep或者类似的东西,如果你需要深度克隆。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)