Добавить элемент во вложенный массив в 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 
},
Другие вопросы по тегам