小编典典

可以将getDerivedStateFromProps用作componentWillReceiveProps的替代方法

reactjs

将getDerivedStateFromProps添加为遗留componentWillReceiveProps的一种更安全的替代方法。

这就是16.3文档所说的内容。这个生命周期还有什么要改变的吗?还是只是改名?


阅读 639

收藏
2020-07-22

共1个答案

小编典典

getDerivedStateFromProps不只是将名称更改为componentWillReceiveProps。这是一个静态方法,在实例化组件之后或在接收新道具之前会调用它,componentWillReceiveProps这与在初始渲染时未调用过的方法不同。

返回对象以更新属性以响应道具更改。

返回null表示状态不变。

引入了静态生命周期方法以防止不安全地访问实例属性。

的目的getDerivedStateFromProps是仅根据道具更改来更新状态,而不基于可以执行的操作如API调用或函数调用prevProps。所有这些操作都可以在componentDidUpdate生命周期函数中完成,因为这是安全的,因为即使更改完成后componentWillReceiveProps,数据也会在渲染后到达,并且通常您会触发另一个重新渲染,这很可能在componentDidUpdate生命周期方法中完成。

您可以参考
此RFC, 以了解有关进行此更改的更多信息。

2020-07-22