Добавить элемент во вложенный массив в redux-toolkit
Redux Toolkit выдает мне ошибки мутации при попытке обновить состояние во вложенном массиве, и я думал, что он использовал immer, чтобы обойти это и упростить редукторы.
Мой магазин выглядит так:
состояние -> формы -> разделы
Я хочу добавить раздел в существующую форму.
Мое действие принимает форму и раздел
редуктор выглядит как
let intialState={
forms:[]
}
const FormsReducer = createReducer(intialState, {
ADD_SECTION: (state, action) => {
const index = state.forms.findIndex(f => f.id === action.form.id);
state.forms[index].__formSections.push(action.payload);
},
В отправке обнаружена мутация состояния в пути:
FormsReducer.forms.0.__formSections.0
Тем не менее, согласно документации redux-toolkit, должно быть возможно "написать" изменяющуюся "неизменную логику обновления"...
Что я делаю не так и как это исправить?
1 ответ
Если вы вернете его без изменения из редуктора, ошибка не возникнет.
const FormsReducer = createReducer(intialState, {
ADD_SECTION: (state, action) => {
const newstate = {...state}
const index = newstate.forms.findIndex(f => f.id === action.form.id);
newstate.forms[index].__formSections.push(action.payload);
return newstate
},