首页 > 解决方案 > React - 来自父组件的子组件的 setState

问题描述

我有两个组件。一个主组件和一个子组件。

让我们假设在主要组件中触发了一个函数,导致它state发生了变异。主state组件的 被作为道具传递给子组件。props现在应该使用子组件中新更新的数据来设置state子组件的。

我不能在 ``componentDidUpdate 上执行此操作,因为它会导致无限循环。另一方面,我不想将孩子提升state到主要组件,因为它的大多数代码在主要组件中都是无用的。

我希望你能帮忙

标签: javascriptreactjs

解决方案


componentDidUpdate takes prevProps as argument componentDidUpdate(prevProps, prevState, snapshot). So to not getting the code in infinite loop, you can compare this.props with prevProps and update the state accordingly.

componentDidUpdate(prevProps) {
  if(this.props.data !== prevProps.data) {
     // update the new state here this will not cause infinite loop
  }
}

推荐阅读