getDerivedStateFromProps() vs componentDidUpdate()



我在应用程序的许多地方都使用componentWillReceiveProps。现在,我必须用getDerivedStateFromProps()componentDidUpdate()替换它们。首先,我想到使用getDerivedStateFromProps作为componentWillReceiveProps的替代品,作为建议的react-native文档。但有些人强烈建议不要使用这种方法,而是建议使用componentDidUpdate。但根据我的要求,所有新道具必须在渲染前设置stategetDerivedStateFromProps是这样做的最佳场所

因此,在getDerivedStateFromPropscomponentDidUpdate之间使用哪一个?

来自React文档

https://reactjs.org/docs/react-component.html#static-从道具获取导出状态

getDerivedStateFromProps在调用渲染方法之前立即调用,无论是在初始装载还是在后续更新中。它应该返回一个对象来更新状态,或者返回null来不更新任何内容。

派生状态会导致冗长的代码,并使您的组件很难思考。

确保您熟悉更简单的替代方案:

  • 如果您需要执行副作用(例如,数据获取或动画(以响应道具的更改,请改用componentDidUpdate生命周期
  • 如果您想仅在道具更改时重新计算某些数据,请改用内存化辅助对象
  • 如果您想在道具更改时"重置"某些状态,请考虑使用键使组件完全受控或完全不受控

相关内容

  • 没有找到相关文章

最新更新