我搜索过这段文字但没有修复我的情况。我的条件是我有一个prop值我需要将此值设置为2状态变量。一个是直接赋值,一个是间接的。现在由于设置状态或未知原因的异步性质,然后设置该值被渲染的子项。现在我应该如何控制这种行为?
这是我的componentWillReceiveprops
孩子
componentWillReceiveProps(nextProps) {
let lastManualFlag =[...this.state.lastManualFlag];
console.log('before',lastManualFlag,nextProps.groupBy.length);
for(var i=0;i<nextProps.groupBy.length;i++){
lastManualFlag[i]=false;
}
console.log("after",lastManualFlag)
this.setState({lasManualProg:lastManualFlag});
this.setState({ groupBy: nextProps.groupBy});
}
这是我的渲染方法
render() {
console.log('this.state',this.state);
if (!this.props.groupBy) return null;
当我看到控制台时,我的lastManualFlag仍然是0号阵列
答案 0 :(得分:0)
您有两次调用设置状态
如何在一次通话中这样做:
this.setState({...state,lastManualProg:lastManualFlag,groupBy: nextProps.groupBy});