zbudowałem wózku aplikację z tego reduktora w reactjs/Redux:Jak mogę przełączać właściwości w reduktorze?
const initialState = {
items: [],
cartOpen: false,
total: 0
}
const Cart = (state = initialState, action) => {
switch (action.type) {
case 'ADD_TO_CART':
let newstate = [...state, action.payload];
var newTotal = 0;
newstate.forEach(it => {
newTotal += it.item.price;
});
newstate.total = newTotal;
newstate.cartOpen =true
return newstate;
case 'TOGGLE_CART':
debugger;
return !state.cartOpen;
default:
return state
}
}
export default Cart;
Próbuję ustawić stan na wózku czyli otwarty, ale kiedy sprawdzić dzienniki własnością koszyk jest aktualizowana, a nie cartOpen własność?
Naprawdę nie zmieniam stanu, w którym właśnie zwracam wartość logiczną? –
Przypadkowo nacisnąłem klawisz Enter, ok, tutaj jest reszta mojego poprzedniego komentarza: 'initialState = {a: 1, b: 2, cartOpen: false}' teraz, jeśli twój reduktor zwróci 'return! State.cartOpen', a następnie konsola .log (stan) da boolean 'true' (ale chciałeś' {a: 1, b: 2, cartOpen: true} '). Co oznacza, że straciłeś wszystkie inne właściwości "a", "b" itd. W twoim obiekcie stanu. Zasadniczo zmutowałeś lub uszkodziłeś swój stan. –