我将父状态传递给子组件,但是当我在子组件中打印 props 时,我得到的是父组件的先前状态,而不是最新状态。我很确定这是因为 this.setState
是异步的。
handleClick(event) {
const value = event.currentTarget.value;
this.setState({ touched: value });
}
render() {
return(
<ChildComponent {...this.state} />
)
}
最佳答案
componentWillReceiveProps
是在组件更新渲染之前。 If you read the docs他们解释说你可以引用下一个即将到来的 Prop 。
componentWillReceiveProps(nextProps, nextState){
this.props.something // old value
nextProps.something // new value
}
现在渲染完成后是否发生更新。
componentDidUpdate(previousProps){
this.props.somehting // new value
previousProps.something // old value
}
您的问题是您在新 Prop 发生更改以更新旧 Prop 之前打印出旧 Prop 。您需要的是 componentDidUpdate
或查看下一个传入的 props
关于reactjs - 为什么子组件不随父组件的状态更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462792/