提问者:小点点

如何在MERN堆栈应用程序中使用上下文和钩子从状态中删除项


我如何编辑我的函数以从我的用户状态中删除项目?在user.cart中,它是数组。

函数如下:

const removeFromContextCart = (id) => {
        console.log(id)
        const updatedCart = user.cart.filter((item) => item.id !== id);
        setUser(oldState => ({
            ...oldState,
            cart: [
                ...oldState.cart,
                updatedCart
            ]
        }))
    }

下面是按钮:

<button className="remove--Button" onClick={() => {removeFromCart(user._id, product); setUser(removeFromContextCart(product._id))}}> REMOVE</button>

共1个答案

匿名用户

改变

cart: [
    ...oldState.cart,
    updatedCart
]

cart: updatedCart

我不明白您试图在按钮的onclick处理程序中做什么。不应调用SetUser(removeFromContextCart(Product._ID)。只应调用removeFromContextCart(Product._ID)