Вы открываете литерал объекта, начинаете с ...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
для внутреннего) переопределит свойство из спреда. Более поздние свойства в объектных литералах "побеждают" над более ранними.