在ReactJS中通过AJAX加载初始数据的位置

时间:2016-09-21 15:19:50

标签: reactjs redux

我正在使用React-Redux来构建应用程序。要加载React智能组件的初始数据,我需要调度一个Redux操作,在该操作中将发生Ajax调用。我尝试在构造函数(ES6实现),componentWillMount和componentsnetDidMount中调度操作。他们都工作了。我的问题是:React智能组件中是否存在应该调度操作的推荐位置。

2 个答案:

答案 0 :(得分:7)

修改Dan Abramov recently stated

  

在React的未来版本中,我们希望componentWillMount在某些情况下会多次触发,因此您应该将componentDidMount用于网络请求。

componentDidMount

阅读here

  

获取componentDidMount 中的数据。当响应到达时,将数据存储在状态中,触发渲染以更新UI。

     

在异步获取数据时,使用componentWillUnmount取消任何未完成的请求,然后再卸载该组件。

为什么在componentDidMount"中的文件非常缺乏。我相信如果您使用服务器端呈现,则不会调用componentWillMount,因此这可能是首选componentDidMount的原因。

答案 1 :(得分:1)

我认为推荐的方法是在componentDidMount中执行此操作。有关详细信息,请参阅this