我读过https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data-when-props-change。我仍然无法理解为什么他们必须弃用componentWillReceiveProps。在componentWillReceiveProps内部进行Ajax调用有什么害处?一旦ajax调用返回值,我将更新状态,从而重新呈现组件。
最佳答案
componentWillReceiveProps
是同步挂钩。在设置新 Prop 和数据完成加载之间,需要在此挂钩中调用异步函数(如数据获取)。
但是getDerivedStateFromProps
是异步挂钩,不需要任何其他渲染。因此,出于以下原因而弃用componentWillReceiveProps
:
不会给您不必要的渲染。注意
getDerivedStateFromProps
仅在极少数情况下使用。因此,我建议您尽可能使用componentDidUpdate
挂钩。比较componentWillMount和componentDidMount时,会发生类似的情况。每当需要进行异步操作时都使用componentDidMount,并在所有情况下都忘记componentWillMount。关于componentDidMount的更多解释在我的另一个post中。
关于reactjs - 为什么不赞成componentWillReceiveProps?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51980977/