Quiero eliminar un producto en el que hago clic dentro de mi carrito usando Redux. Puedo eliminar un producto con "pop", pero obviamente elimina el último elemento de la lista en lugar del que hago clic. Cada producto tiene su propio precio que también quiero restar del total. El producto y su precio tienen el mismo índice en la lista de productos y en la lista de precios de zapatos.
import {createSlice} from "@reduxjs/toolkit"; const cartSlice = createSlice({ name:"cart", initialState:{ products: [], quantity: 0, total: 0, shoePrice: [], }, reducers:{ addProduct:(state, action)=>{ state.quantity += 1; state.products.push(action.payload); state.shoePrice.push(action.payload.price); state.total += action.payload.price; }, removeProduct:(state, action)=>{ if(state.quantity > 0) { state.quantity -= 1; state.total = state.total - state.shoePrice.pop(1); state.products.pop(1); } }, }, }); export const {addProduct, removeProduct} = cartSlice.actions export default cartSlice.reducer;Si desea eliminar el producto de la matriz usando el índice:
state.products.splice(index, 1)
Si solo desea mostrar el último producto agregado:
state.products.splice(state.products.length-1, 1)