Redux reducer检查项目是否已存在状态的正确方法

时间:2016-12-27 03:06:38

标签: react-redux

在更新现有或向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来复制状态并检查该项是否已经存在于看似不必要且过度的状态?

0 个答案:

没有答案