如何在反应中为两个状态分配一个道具值
问题描述:
我已经搜索过这个文本,但是没有一个能够解决我的情况。我的条件是我有一个支持值,我需要将此值设置为2状态变量。一个是直接分配一个是间接的。现在由于设置状态的异步性质或未知原因,所以在设置该值的孩子被渲染之前。现在我应该如何控制这种行为? 这是我的孩子如何在反应中为两个状态分配一个道具值
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});
}
的componentWillReceiveprops
这是我的渲染方法
render() {
console.log('this.state',this.state);
if (!this.props.groupBy) return null;
当我看到安慰我lastManualFlag还是大小为0阵列
答
你有两个呼叫设置状态
怎么样在一个电话如:
this.setState({...state,lastManualProg:lastManualFlag,groupBy: nextProps.groupBy});
您是否尝试过仅使用一个setState行而不是两个? – mersocarlin
对不起,这是我犯的愚蠢的错误。 'lasManualProg'而不是'lastManualProg' – LowCool
也有一个错字。 'lastManualProg'而不是'lasManualProg' – mersocarlin