componentWillReceiveProps

componentWillReceiveProps

我读过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

  • 不会给您不必要的渲染。注意getDerivedStateFromProps仅在极少数情况下使用。因此,我建议您尽可能使用componentDidUpdate挂钩。

    比较componentWillMount和componentDidMount时,会发生类似的情况。每当需要进行异步操作时都使用componentDidMount,并在所有情况下都忘记componentWillMount。关于componentDidMount的更多解释在我的另一个post中。

    关于reactjs - 为什么不赞成componentWillReceiveProps?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51980977/

    10-12 04:55