问候,我在更新应用程序状态时遇到问题。
一切正常,如果我使用的方法违反了React的可变性原则。 这是我的状态:
"babel": { "testOptions": { "presets": … } }
action.payload是:
const state= {
cart: {
items: [
{
productId: "A1",
quantity: "1",
unitPrice: "9"
}
]
}
};
它适用于此:
{productId: "A2", quantity: "1", unitPrice: "11"}
但是,我想使用更好的方法。像这样一个:
case ADD_PRODUCT_TO_CART:
state.cart.items.push(action.payload);
return state;
但是它不会更新我的状态。 store.getState()输出初始状态。
答案 0 :(得分:0)
您错过了cart
键。
这应该有效:
case ADD_PRODUCT_TO_CART:
return {
...state,
cart: { // add cart key
...state.cart,
items: [
...state.cart.items,
action.payload // new items will be the last
]
}
};