我最近想升级对React的了解,因此我从组件生命周期方法开始。让我好奇的第一件事就是这个 componentWillReceiveProps
。因此,文档说,当组件接收到新的(不一定是更新的)道具时会触发该事件。在该方法内部,我们可以比较它们,并在需要时保存到状态中。
我的问题是:如果该组件的属性更改(在父render
内部)会触发该子组件的重新渲染,我们为什么需要该方法?
最佳答案
一种常见的用例是状态(this.state
)更新,可能需要响应更新后的道具。
由于您不应该尝试通过this.setState()
函数中的render
更新组件的状态,因此需要在componentWillReceiveProps
中发生。