angular - 如何使用旧的reducer函数添加createReducer

标签 angular ngrx

我喜欢使用 createReducer 创建 reducer 的新方法,但我无法找到任何迁移路径,如何将旧 reducer 迁移到这个新函数。

我想以 createReducer 方式添加新的状态突变,并结合两个 reducer ,然后加类我移动东西。

知道该怎么做吗?

最佳答案

阅读Mixing Action Styles In NgRx State作者:布兰登·罗伯茨。

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);
  }
}

关于angular - 如何使用旧的reducer函数添加createReducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62473411/

相关文章:

Angular `ng add` 无效。有关可用选项,请参阅 `ng help`

ngrx 效果单元测试合并图中的多个 Action

javascript - NgRx createReducer() 和 on() 给出错误

Angular 剑道: kendo-grid-column filter label for booleans

javascript - 如何使用Electron菜单执行angular 7导航

Angular2+ 路由 - 可选路由参数

javascript - angular 4 通过使用登录按钮按回车提交表单

NGRX 选择器 : factory selector within another selector without prop in createSelector method

TypeScript 类型不适用于扩展运算符

javascript - 操作必须具有类型属性