私はreactjs/Reduxの中で、この減速とカートのアプリを構築しています:還元剤のプロパティを切り替えるにはどうすればよいですか?
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;
私はつまり、オープンが、私は、ログをチェックしたときに、カートプロパティがcartOpen更新されず、カートの状態を設定しようとしていますプロパティ?
私は本当にブール値を返すだけの状態を変更しないのですか? –
私は間違ってEnterキーを押しました。ここには私の前のコメントの残りがあります: 'initialState = {a:1、b:2、cartOpen:false}' あなたのレデューサーが 'return!state.cartOpen' .log(state)はブール値 'true'を返します(しかし' {a:1、b:2、cartOpen:true} ')。つまり、あなたの状態オブジェクトに、他のすべてのプロパティ 'a'、' b'などがなくなったということです。本質的に、あなたはあなたの状態を突然変異させたり壊したりした –