我需要在渲染内容时更新我的React应用程序中的状态。渲染时是否有任何更新状态的选项。
注意:我是新来的人
答案 0 :(得分:0)
您可以使用componentDidUpdate()
生命周期方法。
并在componentDidUpdate()
函数内部更新您的状态。
仅供参考:每次更新组件时,componentDidUpdate()
都会调用。
答案 1 :(得分:0)
面向未来的注意事项:与v16.4相关的答案。
问题的答案取决于您说“在渲染时”的意思。
当react调用组件的render方法时,它实际上并没有渲染任何东西。渲染方法的结果将进行“调节”,这意味着它将与当前渲染的结果进行比较。如果检测到差异,则react实际上会尽可能有效地重新渲染DOM。
这意味着当React实际上呈现/重新呈现DOM时,您将无法执行任何操作,因为您的代码没有被执行。
但是,您可以在调用render方法之后执行某些操作。 正如其他人在我之前所说的那样, componentDidUpdate 方法就是这个地方。
请注意,已调用此方法这一事实并不一定意味着react已经重新呈现了DOM。它仅确保组件与DOM同步。
请注意,由于设置状态可能会导致重新渲染,因此您应该非常小心在componentDidUpdate中设置状态-否则可能会导致无限循环。
即使您正确实现了shouldComponentUpdate,也应阻止渲染周期到达cDU-反应文档,建议sCU的结果可以作为将来的提示,这将在以后的版本中破坏您的应用程序。
因此,如果必须在cDU中设置setState,则必须检查此setState是必需的,并且这不是首先设置状态的副作用。