如何使用Redux存储中的reduce方法删除行

时间:2019-08-04 19:10:55

标签: reactjs redux

我的减速机中有此功能,我要在其中返回更新的购物车

function updateCartInfo(cartItem, list) {
    const { id } = cartItem;
    const newList = new Map([...list.entries()]);

    newList.set(id, cartItem);

    return newList;
}

这就是我用来分配此功能的情况,其中cart是我的cart对象的数组。

case UPDATE_CART_INFO: {
            const { payload } = action;
            const { cart } = state;

            return {
                ...state,
                cart: updateCartInfo(payload, cart),
            };
        }

现在在组件内部,我正在尝试编写一个函数,该函数将使用reduce()通过其id删除一行。我如何从这里开始

handleRemove = () => {
        const { cart } = this.props;
        const row = cart.get(id);

        return cart.reduce((list, item) => {

        })
    };

1 个答案:

答案 0 :(得分:1)

为此,我将Array.filter用于购物车Map。如果您使用的ID与购物车中的ID相同,则很简单:

 handleRemove = () => {
    const { cart } = this.props;
    const filteredMap = [...cart].filter(([key, item])=> key !== id)
    return new Map(filteredMap)
};