我正在使用React-Redux来构建应用程序。要加载React智能组件的初始数据,我需要调度一个Redux操作,在该操作中将发生Ajax调用。我尝试在构造函数(ES6实现),componentWillMount和componentsnetDidMount中调度操作。他们都工作了。我的问题是:React智能组件中是否存在应该调度操作的推荐位置。
答案 0 :(得分:7)
修改:Dan Abramov recently stated
在React的未来版本中,我们希望componentWillMount在某些情况下会多次触发,因此您应该将componentDidMount用于网络请求。
在componentDidMount
阅读here。
获取componentDidMount 中的数据。当响应到达时,将数据存储在状态中,触发渲染以更新UI。
在异步获取数据时,使用componentWillUnmount取消任何未完成的请求,然后再卸载该组件。
为什么在componentDidMount
"中的文件非常缺乏。我相信如果您使用服务器端呈现,则不会调用componentWillMount
,因此这可能是首选componentDidMount
的原因。
答案 1 :(得分:1)
我认为推荐的方法是在componentDidMount中执行此操作。有关详细信息,请参阅this。