在对组件(R
)的调用做出反应时,setState()
可以触发重新呈现所有子组件。
我们怎么知道什么时候结束了?
在R
的所有子项都已挂载/呈现/更新后调用哪个生命周期方法?
更详细:
让我们考虑以下情况:
根组件R
及其子组件C1
和C2
。
我想实现我自己的redux商店,其中子组件(C1
和C2
)可以调度操作,并且所有子组件已经挂载/重新呈现/更新后我想命令redux存储来处理调度的操作。
因此,我需要知道所有子项何时被渲染并安排调用redux存储,该存储将命令存储处理已调度的操作。
在R
已安装/渲染/更新所有子项之后调用哪种生命周期方法?
答案 0 :(得分:10)
更新:React已改变其生命周期,但在这种情况下,您需要的方法仍然相同。新的生命周期是:
A)安装
B)更新(包括道具和州)
老答案
ComponentDidUpdate
会做你说的。由于状态变化,它会在渲染后立即启动,因为道具更改或渲染。
生命周期:
A)安装
B)道具变更
C)状态变化
更多信息: https://reactjs.org/docs/react-component.html#componentdidupdate
答案 1 :(得分:9)
我认为您正在寻找componentDidUpdate
生命周期事件。 https://facebook.github.io/react/docs/react-component.html#componentdidupdate
在更新组件时会触发它(并且它的所有子组件也都会更新)。
⚠第一次渲染时不会触发此事件。如果您还需要处理首次渲染,则必须同时使用componentDidUpdate
和componentDidMount