Самым простым решением для решения вашей проблемы является определение отдельных флагов загрузки для различных асинхронных c действий.
Таким образом, в initialState
в Redux вы можете иметь:
{
...
usersLoading: false,
productsLoading: false,
companiesLoading: false,
}
Затем вы устанавливаете его на true
/ false
в зависимости от загруженного состояния всех данных.
Наконец, у вас может быть селектор, который оценивает логический OR
всех флагов загрузки, например так:
state.usersLoading || state.productsLoading || state.companiesLoading
А в вашем App
компоненте соедините значение этого селектора с вашей пропеллером, скажем, loading
, и визуализируйте компонент Loader
на основе этого:
{loading && <Loader />}