渲染时反应状态更新

时间:2018-06-28 05:41:57

标签: reactjs

我需要在渲染内容时更新我的​​React应用程序中的状态。渲染时是否有任何更新状态的选项。

注意:我是新来的人

2 个答案:

答案 0 :(得分:0)

您可以使用componentDidUpdate()生命周期方法。

并在componentDidUpdate()函数内部更新您的状态。

仅供参考:每次更新组件时,componentDidUpdate()都会调用。

https://reactjs.org/docs/react-component.html

答案 1 :(得分:0)

面向未来的注意事项:与v16.4相关的答案。

问题的答案取决于您说“在渲染时”的意思。

当react调用组件的render方法时,它实际上并没有渲染任何东西。渲染方法的结果将进行“调节”,这意味着它将与当前渲染的结果进行比较。如果检测到差异,则react实际上会尽可能有效地重新渲染DOM。

这意味着当React实际上呈现/重新呈现DOM时,您将无法执行任何操作,因为您的代码没有被执行。

但是,您可以在调用render方法之后执行某些操作。 正如其他人在我之前所说的那样, componentDidUpdate 方法就是这个地方。

请注意,已调用此方法这一事实并不一定意味着react已经重新呈现了DOM。它仅确保组件与DOM同步。

请注意,由于设置状态可能会导致重新渲染,因此您应该非常小心在componentDidUpdate中设置状态-否则可能会导致无限循环。

即使您正确实现了shouldComponentUpdate,也应阻止渲染周期到达cDU-反应文档,建议sCU的结果可以作为将来的提示,这将在以后的版本中破坏您的应用程序。

因此,如果必须在cDU中设置setState,则必须检查此setState是必需的,并且这不是首先设置状态的副作用。

相关问题