React · Middle · Запитання 35 з 75
Що не так із цим case reducer у createSlice?
todoAdded(state, action) {
state.items.push(action.payload);
return { ...state, count: state.count + 1 };
}- ✓Правильна відповідь: Не можна і мутувати чернетку, і повертати значення
- 2У
createSliceзаборонені мутувальні методи на кшталтpush - 3Case reducer мусить бути асинхронною функцією
Пояснення
Immer дає змогу або «мутувати» чернетку state, або повернути повністю нове значення - але не обидва одразу, інакше Immer кине помилку. Тут досить state.items.push(...) і state.count += 1. push дозволений, бо зміни застосовуються до чернетки.