如何处理进行中的请求以使用redux saga显示加载程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理进行中的请求以使用redux saga显示加载程序?相关的知识,希望对你有一定的参考价值。

在我的redux-saga应用中,可能同时发生多个api调用,因此需要显示各个加载程序和api响应成功/错误消息。

如何处理这种情况?

例如,通常保持以下redux状态:

{
 data : {},
 isError: false,
 isLoading: true
}

当api调用正在等待响应时,此处isLoading标志变为true。

[isError标志在api响应返回错误时变为true。

[data存储来自api的成功响应

当没有同时进行api调用时,上述方法可以正常工作。

如何同时发生不同的api调用时如何处理?

答案

对于这种情况:

而不是全局使用状态

{
 data : {},
 isError: false,
 isLoading: true
}

我们可以单独使用状态

像在每个不同的api调用中一样,我们可以使用不同的reducer,并且可以分别设置isError和isLoading的不同reducers。

现在在rootReducer中,我们以不同的方式分配所有的reducer,例如responseOfApi1,responseOfApi2等,我们可以在组件中像props.responseOfApi1,props.responseOfApi2一样访问它。

现在我们可以将isLoading定义为单个组件中的状态,并检查是否有任何props.responseOfApi1.isLoading || props.responseOfApi2.isLoading,那么我们可以setState({isLoading:true}),如果props.responseOfApi1.isLoading && props.responseOfApi2.isLoading setState({isLoading:false})

以上是关于如何处理进行中的请求以使用redux saga显示加载程序?的主要内容,如果未能解决你的问题,请参考以下文章

同时启用 redux-promise 和 redux-saga 中间件似乎会导致问题

如何处理 Redux 中的关系数据?

在redux返回结果之前如何处理渲染方法?

我的减速机应该处理@@ redux-saga-test-plan / INIT动作吗?

Redux:从组件请求成功或错误流(使用 redux-saga)

如何处理来自服务器(节点 js)中表单的数据? [复制]