Как пишут в туториалах данные в редьюсерах не должны мутироваться, а должны заменяться.
Предположим у нас есть редьюсер, хранящий массив Пользователей, т.е. state это [ ], у каждого пользователя есть набор свойств.
В редьюсере есть несколько действий, добавить, удалить, изменить свойство.
1. Мы хотим добавить нового пользователя. Как правильно сделать:
а. Взять массив state добавить в него новый элемент и вернуть state.
б. Клонировать state, уже в него добавить новый элемент и вернуть этот state.
в. Другой вариант.
2. Мы хотим изменить имя пользователя. Как правильно сделать:
a. Находим в state этого пользователя, клонируем объект пользователя, изменяем у нового объекта свойство, земеняем в state старый объект на новый, возвращаем state.
б. Просто находим пользователя в массиве state, присваиваем новое значение свойству, делаем клонирование всего state и возвращаем уже его.
в. Другой вариант.