在更新现有或向redux商店添加新对象时,我对这种方法有点不确定,但是使用接受的方法(即Object.assign,update()或spread运算符)无法使用此方法。我可以按照以下方式开展工作:
const initialState = {
cart: []
}
export default function cartReducer(state = initialState, action) {
switch (action.type) {
case ADD_TO_CART:
let copy = _.clone(state.cart);
let cartitem = _.find(copy, function (item) {
return item.productId === action.payload.productId;
});
if (cartitem) {
cartitem.qty = action.payload.qty;
} else {
copy.push(action.payload);
}
return {
...state,
cart: copy
}
default:
return state
}
}
虽然这有效,但我正在使用Underscore来复制状态并检查该项是否已经存在于看似不必要且过度的状态?