В обычном Redux reducer исходное состояние мутировать нельзя; создавайте новые объекты изменяемых уровней. В Redux Toolkit допустима мутация Immer draft.
[имя] можно ли мутировать данные в reducer? Как правильно обновлять массивы и объекты?
В обычном Redux reducer исходное состояние мутировать нельзя; создавайте новые объекты изменяемых уровней. В Redux Toolkit допустима мутация Immer draft.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В обычном Redux reducer исходное состояние мутировать нельзя; создавайте новые объекты изменяемых уровней. В Redux Toolkit допустима мутация Immer draft.
Для массива используйте map, filter или копию перед изменением, для объекта — копирование нужных уровней. Не меняйте исходный вложенный объект после поверхностного spread родителя. При Immer соблюдайте его контракт и не мутируйте внешние данные. Неизменившиеся части полезно сохранять по ссылке для корректной и эффективной работы селекторов.