2 回答
TA贡献1796条经验 获得超4个赞
Object.assign({}, item, { quantity: action.quantity + 1 });
变成
{ ...item, quantity: action.quantity + 1 }
case INCREASE_QUANTITY : {
return {
...state,
cart : state.cart.map(item => {
if (item.product.id === action.productInfo.product.id) {
return {
...item,
quantity: action.quantity + 1
}
}
return item;
})
};
}
TA贡献1815条经验 获得超10个赞
您打开一个对象字面量,首先...state将其展开到新对象中,然后使用cart属性(以及内部属性的相同概念):
case INCREASE_QUANTITY: {
return {
...state,
cart: state.cart.map(item => {
if (item.product.id === action.productInfo.product.id) {
return {
...item,
quantity: action.quantity + 1,
};
}
return item;
}),
};
}
通过按该顺序执行此操作,您可以确保cart(或quantity对于内部)覆盖点差中的属性。对象字面量中较晚的属性“胜过”较早的属性。
添加回答
举报