РЕДАКТИРОВАТЬ: решение состоит в том, чтобы вернуть state
после полной его замены (return state = {...action.payload}
)! Но почему? Мне не нужно возвращать его, когда я заменяю поля по отдельности.
Я работаю с Redux Toolkit , который упрощает некоторые шаблоны Redux. Одна вещь, которую они делают, - это использование Immer, чтобы позволить вам напрямую «модифицировать» состояние (на самом деле это не так). Это прекрасно работает, за исключением того, что я не знаю, как полностью заменить мой раздел состояния. Например, я хочу сделать что-то вроде этого
const reducer = createReducer({ s: '', blip: [] }, {
[postsBogus.type]: (state, action) => {
state = { ...action.payload };
}
, но state
остается нетронутым. Вместо этого я должен сделать это
[postsBogus.type]: (state, action) => {
state.s = action.payload.s;
state.blip = action.payload.blip;
}
Есть ли способ полностью заменить состояние?