以下情况的最佳方法是什么?
a)上面的情况不是很好-true / false标志在第一个请求完成后变为false
b)我正在尝试使用计数器标记-启动的每个请求都为+1,完成时每个请求为-1-加载程序隐藏在0。但是请求是异步的(因此从不同位置设置状态吗?),所以也不起作用(设置计数器标志取决于上一个状态,因此并行状态更改会给出错误的最终值)
答案 0 :(得分:1)
解决问题的最简单方法是为不同的异步操作定义单独的加载标志。
因此,在redux的initialState
中,您可以:
{
...
usersLoading: false,
productsLoading: false,
companiesLoading: false,
}
然后,根据每个数据的加载状态将其设置为true
/ false
。
最后,您可以使用一个选择器来评估所有加载标志的逻辑OR
,如下所示:
state.usersLoading || state.productsLoading || state.companiesLoading
然后在您的App
组件中,将该选择器的值连接到您的道具,例如loading
,然后基于该属性渲染Loader
组件:
{loading && <Loader />}