javascript - 如果我不应该在 componentWillUpdate 中调用 setState,如何更新状态(使用 ReactJS)?

标签 javascript reactjs

当我在 componentWillUpdatesetState 时,componentWillUpdate 在无限循环中运行,并且不会停止触发。

这永远不会让我的渲染有机会反射(reflect)我的更改。如果我不应该使用 componentWillUpdate,如何更改状态?

编辑:我已经了解了 setState 不应该在 componentWillUpdate 中调用。我只是很困惑我应该做什么作为替代方案。

编辑 #2:我从 componentWillReceiveProps 开始,但当我的父组件更改状态时,我似乎无法触发此函数。我将 parent 的状态作为 Prop 提供给我的 child 。

最佳答案

首先要做的是检查此方法的官方文档 ( link )。您可以在其中阅读函数实际调用的时间。

然后阅读常见错误(注释):

You cannot use this.setState() in this method. If you need to update state in response to a prop change, use componentWillReceiveProps instead.

您更改状态,React 会自动调用 componentWillUpdate

关于javascript - 如果我不应该在 componentWillUpdate 中调用 setState,如何更新状态(使用 ReactJS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945089/

相关文章:

javascript - Xpath 函数在剧作家中不起作用

javascript - Angular 2 在执行命令之前等待/超时

javascript - javascript 或 html 中的媒体屏幕

reactjs - React js 中输入字段值未更新

javascript - webpack 'import' 仅在顶层

javascript - 使用状态和回调函数

Javascript 动态添加元素并允许通过 CSS 文件进行自定义

javascript - JavaScript 中的 JSF 资源包参数?

angularjs - 让 AngularJS、ReactJS、ngReact、Browserify、Reactify、Material-UI 能够很好地协同工作

css - 加载 CSS 后渲染 SVG(React 样式组件)