ich einen Wagen App mit diesen Minderer in reactjs gebaut haben/Redux:Wie kann ich die Eigenschaft in Reducer umschalten?
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;
Ich versuche, den Staat für den Wagen also offen zu setzen, aber wenn ich die Protokolle der Wagen Eigenschaft überprüfen aktualisiert und nicht die cartOpen Eigentum?
Ich ändere nicht wirklich den Zustand, den ich gerade einen booleschen Wert zurückgebe? –
Ich versehentlich die Eingabetaste gedrückt, ok hier ist der Rest meines früheren Kommentars: 'initialState = {a: 1, b: 2, cartOpen: false}' jetzt, wenn Ihr Reducer 'return! State.cartOpen' dann Konsole zurückgibt .log (state) liefert einen booleschen 'true' (aber Sie wollten' {a: 1, b: 2, cartOpen: true} '). Das bedeutet, dass Sie alle anderen Eigenschaften "a", "b" usw. in Ihrem Statusobjekt verloren haben. Im Wesentlichen hast du deinen Zustand mutiert oder korrumpiert. –