Как добавить createReducer со старой функцией reducer - PullRequest
0 голосов
/ 19 июня 2020

Мне нравится новый способ создания редуктора с помощью createReducer, но я не могу найти какой-либо путь миграции, как вы можете перенести свой старый редуктор на эту новую функцию.

Я хотел бы добавить новую мутацию состояния в createReducer и объединяю оба редуктора, а затем сверхурочно перемещаю вещи.

есть идеи, как это сделать?

1 Ответ

1 голос
/ 19 июня 2020

Чтение Стили смешивания действий в состоянии NgRx Автор: Brandon Roberts.

import { createReducer, on, union } from '@ngrx/store';
import * as LegacyCounterActions from './legacy-counter.actions';
import * as CounterActions from './counter.actions';
export const initialState = 0;
type State = number;
const counterReducer = createReducer(initialState,
  on(CounterActions.increment, state => state + 1)
);
const CounterActionsUnion = union({...CounterActions});
type Actions = 
  | LegacyCounterActions.Union
  | typeof CounterActionsUnion;
export function reducer(state: State | undefined, action: Actions) {
  switch(action.type) {
    case LegacyCounterActions.CounterActionTypes.Increment:
      return state + 1;
    default:
      return counterReducer(state, action);
  }
}
...