getDerivedStateFromProps可以用作componentWillReceiveProps的替代方法

Kar*_*ala 11 reactjs

正在添加getDerivedStateFromProps作为传统componentWillReceiveProps的更安全的替代方案.

这就是16.3文档所说的.这个生命周期还有什么更多还是仅仅是名称变更?

Shu*_*tri 11

getDerivedStateFromProps不仅仅是改名componentWillReceiveProps.它是一个静态方法,在实例化组件之后或在接收新的props之前componentWillReceiveProps调用,不像在初始渲染时调用它.

返回一个对象以更新状态以响应prop更改.

返回null表示状态没有变化.

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

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

您可以参考此RFC以了解有关此更改的原因的详细信息.