Сообщение об ошибке редуктора NGRX8: тип 'number' не может быть назначен типу 'ListItem[]'
Я пытаюсь настроить 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[]'.
1 ответ
Оператор 'on' должен был выглядеть так
on(add, (state, {name, quantity}) => ([...state, {name, quantity}]))