Есть массив
Messages:
messages = [
{
_id: "111",
text: "text1"
},
{
_id: "222",
text: "text2"
},
]
В
Redux во время
экшна:
case UPDATE_MESSAGE:
let foundIndex = state.messages.findIndex(message => message ._id == payload._id);
state.messages[foundIndex] = payload;
return {
...state,
messages: [...state.messages]
};
Если вот так напрямую изменить текущий объект, то выскакивает ошибк:
A state mutation was detected inside a dispatch, in the path...
Как правильнее обновить одно сообщения в массиве?
А вообще, нужно ли так делать или лучше будет после обновления вызвать метод GetAllMessage (который загружает все сообщения для текущей комнаты) через сокет для всех пользователей в текущей комнате.
Но в этом случает у других юзеров пойдет загрузка сообщений, и как-то будет не понятней почему сообщения загружаются.