在React / Redux应用程序中定位网络请求的逻辑

时间:2017-07-19 13:48:42

标签: javascript reactjs redux immutability redux-thunk

我有一个React组件,可以在页面上呈现项目。从网络中检索项目。

加载组件时,应检索并呈现这些项目。

在组件加载后,将有一种机制来更新项目。

我的第一个想法是将网络请求放在componentDidMount函数中。

这样做会破坏与redux和单向数据流/不变性相关的任何最佳实践吗?

相反,我应该向商店发送一个动作并依赖redux中间件来执行网络请求(最终会改变商店并导致重新呈现组件)?

1 个答案:

答案 0 :(得分:1)

如果您的数据是本地数据,请在componentWillMount中执行,如果您的数据是全局数据,则通过调用操作来执行此操作。

所以基本上在componentDidMountcomponentWillMount中进行异步调用是一样的。最有可能的是,componentWillMount中的异步调用在componentDidMount被触发之前不会返回。但是,如果你在componentDidMount进行相同的调用,它将会返回。

componentDidMount中进行异步调用,可以清楚地表明组件首先渲染时没有数据,然后在数据到达时重新渲染,这隐含在componentWillMount中。