React · Middle · Pytanie 35 z 75
Co jest nie tak z tym case reducerem w createSlice?
todoAdded(state, action) {
state.items.push(action.payload);
return { ...state, count: state.count + 1 };
}- ✓Poprawna odpowiedź: Nie można jednocześnie mutować draftu i zwracać wartości
- 2Metody mutujące, jak
push, są zabronione wcreateSlice - 3Case reducer musi być funkcją async
Wyjaśnienie
Immer pozwala albo „mutować” draft state, albo zwrócić całkiem nową wartość - ale nie oba naraz, inaczej Immer rzuci błąd. Tu wystarczą state.items.push(...) i state.count += 1. push jest dozwolony, bo zmiany dotyczą draftu.