getDerivedStateFromProps被添加为传统componentWillReceiveProps的更安全的替代品。
这是16.3文档所说的。这个生命周期还有什么更多的东西还是只是一个名称变化?
答案 0 :(得分:6)
getDerivedStateFromProps
不仅仅是componentWillReceiveProps
的名称更改。它是一个静态方法,在组件实例化之后或接收到新的道具之前调用,与初始渲染时未调用的componentWillReceiveProps
不同。
返回一个对象以更新状态以响应道具更改。
返回null表示状态没有变化。
引入静态生命周期方法以防止不安全地访问实例属性。
getDerivedStateFromProps
的目的是仅根据道具更改更新状态,而不是根据prevProps
执行API调用或函数调用等操作。所有这些都可以在componentDidUpdate
生命周期函数中完成,这是安全的,因为即使在componentWillReceiveProps
中进行了更改,数据也会在渲染后到达,并且通常会触发另一次重新渲染,这可能会很好地在componentDidUpdate
生命周期方法中完成。
您可以参考 this RFC ,详细了解此更改的原因。