cartItems es una matriz de estado que contiene los artículos que agrega el usuario y la lógica que he usado es que si el artículo ya existe en el carrito, aumente su cantidad; de lo contrario, ponga la cantidad en 1.
const [cartItems,setCartItems]=useState([]) const handleAddItem=(item)=>{ if(!cartItems.find(product=>product.id===item.id)){ setCartItems([...cartItems,{...item,quantity:1}]) } else{ setCartItems([...cartItems, cartItems[cartItems.findIndex(product=>product.id===item.id)] .quantity++]) } }Después de agregar un elemento 5 veces al carrito, obtengo el siguiente resultado, pero solo quiero un objeto dentro de la matriz y no otros elementos.
[Object, 1, 2, 3, 4] 0: Object id: 1 name: "Sunday" price: 100 quantity: 5 1: 1 2: 2 3: 3 4: 4Descubrí que el código a continuación se puede usar en otra condición
else{ cartItems[cartItems.findIndex(product=>product.id===item.id)].quantity++ setCartItems([...cartItems]) }