在React的componentWillReceiveProps函数中,如果我检查道具是否先改变了,那么可以进行AJAX调用吗?看来这个函数可能会在React Fiber(后16 beta)中被多次调用,而这个博客(https://medium.com/@baphemot/understanding-reactjs-component-life-cycle-823a640b3e8d)表明不应该执行任何副作用。但是,我没有在React文档中看到这样的警告,并且我认为仅当道具改变了那样才能进行AJAX调用。
答案 0 :(得分:2)
根据最新的(React 16.3+)文档,这被认为是不安全的,并回答了您的确切查询:
使用这种生命周期方法通常会导致错误和不一致, 因此,将来会不推荐使用。
如果您需要执行副作用(例如,数据获取或 动画)以响应道具更改,请使用componentDidUpdate 生命周期。
答案 1 :(得分:0)
在OnWillReceiveProps中拨打电话是可以的,但是由你来定义一个有意义的条件,如果你的条件很好,你就不应该拨打很多电话。无论如何,你应该在大多数情况下避免使用OnWillReceiveProps,这在性能方面是贪婪的