0

我正在尝试设置 NGRX 来更新列表项数组。

这是我的减速机:

export const initialState: Array<ListItem> = [
  {name: 'list item', quantity: 1}
  ];

// tslint:disable-next-line:variable-name
const _listReducer = createReducer(
  initialState,
  on(add, (state, {name, quantity}) => (state.push({name: name, quantity: quantity})))
);

export function listReducer(state: ListItem[] | undefined, action: Action) {
  return _listReducer(state, action);
}

以及相关的动作

export const add = createAction(
  '[List Component] Add',
  props<{name: string; quantity: number}>()
  );

我的问题是如何正确地将新条目从减速器推送到状态数组中?目前我收到此错误

ERROR in src/app/reducers/list.reducer.ts(12,40): error TS2322: Type 'number' is not assignable to type 'ListItem[]'.
4

1 回答 1

0

'on' 语句应该看起来像这样

  on(add, (state, {name, quantity}) => ([...state, {name, quantity}]))
于 2019-12-27T19:56:37.223 回答