Использование редуктора более высокого уровня вместе с комбинированными редукторами нижнего уровня - PullRequest
0 голосов
/ 15 марта 2019

У меня есть приложение «Реакция / Избыток» с магазином, настроенным так:

interface AppState {
  substateA: SubstateA;
  substateB: SubstateB;
}

И два редуктора, управляющих их отдельными состояниями:

const reducer = combineReducers<AppState>({
    substateA: reducerA,
    substateb: reducerB,
});

Что я хотел бы сделать, так это добавить редуктор, который управляет целым состоянием дополнительно к этим двум редукторам. Как я могу это сделать или есть другое лучшее решение?

1 Ответ

1 голос
/ 16 марта 2019

Редуктор - это просто функция, которая принимает состояние и действие и возвращает новый объект состояния.

combineReducers возвращает редуктор, который вызывает каждый из ваших редукторов только с указанием их состояния.

Поиграйте с чем-то вроде этого ... вы можете сначала запустить комбинированные редукторы или сначала ваш глобальный редуктор состояний, в зависимости от того, что вы делаете.

const combinedReducer = combineReducers<AppState>({
  substateA: reducerA,
  substateb: reducerB,
});

const reducer = (state, action) => {
  state = reducerC(state, action);
  return combinedReducer(state, action);
}
...