Я ищу лучший способ обработки моего статуса извлечения в моем приложении, самый простой способ - создать isFetching [actionName] для каждого действия, и тогда состояние будет выглядеть примерно так:
state:{
todos:[...],
user[...],
isTodosFetching:true/false,
isUserFetching:true/false
}
но я ищу более элегантный способ хранения состояний извлечения в магазине.
, поэтому я попытался придумать альтернативный способ и подумал о создании fetchingActionsReducer, который будет добавлять каждое действие извлечения к dict (объект) в хранилище, а затем состояние будет выглядеть следующим образом:
todos:[...],
user[...],
loadingTasks:{
isTodosFetching:true/false,
isUserFetching:true/false
}}```
now every component will get loadingTasks with mapStateToProps and that's it.
this will reduce the boilerplate to one simple reducer and one action.
reducer:
export const loadingTasks = (state = {}, action) => {switch (action.type) {case START_LOADING_TASK: return Object.assign ({}, состояние, {[action.payload]: true}); case END_LOADING_TASK: вернуть Object.assign ({}, состояние, {[action.payload]: false}); по умолчанию: возвращаемое состояние; }};
actions:
export const startLoadingTask = (taskName) => ({тип: START_LOADING_TASK, полезная нагрузка: taskName,});
экспорт const endLoadingTask = (taskName) => ( {type: END_LOADING_TASK, payload: taskName,}); `` `
Я пробовал, это работает отлично, но я хотел бы знать,
1. Есть лучший способ обработать выборку статуса с помощью приставки ? 2. теперь многие портфели ios будут подписаны на состояние loadingTasks и боюсь, это вызовет проблемы с производительностью . (для каждого изменения в загрузочных задачах все реагирующие будут запускать алгоритм копания для всех подписанных компонентов)