React-如何基于父状态更新子道具

时间:2018-08-30 14:15:09

标签: reactjs

我遇到一个问题,那就是当子反应组件的父阶段更改时,它需要更新。我有一个Editor父组件,该组件设置其状态,然后在该组件收到更新的日程表(来自graphQL突变组件)后更新状态。

问题在于componentDidUpdate的触发器确实触发了Modefield的更新,但是在{strong> {setState可以更新状态之前。这意味着孩子不会更新。 (请注意,我知道一种更惯用的方法是一起消除状态,但是这种方法允许字段编辑和创建新字段。)

如何使孩子根据父母的状态变化进行更新?

componentDidUpdate

编辑:我更新了组件以显示更高级别的graphQL包装器。我之所以要在Editor组件中声明状态,是因为在graphQL查询返回为null的情况下,我将this.state.mode设置为空字符串,然后在更改时进行更新。然后,我将在提交时创建一个新的计划项目。

1 个答案:

答案 0 :(得分:2)

提升状态!尝试管理父组件中数据的基本状态,并将数据用作组件中的道具:

您也可以尝试getDerivedStateFromProps,但在检查react博客建议之前:

https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html