Entonces tengo este campo donde puede ingresar la cantidad para cada fila. Estaba funcionando, sin embargo, cuando agregué otro campo de entrada para la selección, simplemente duplicará lo que se ingresó en cualquiera de los campos. ¿Cómo puedo solucionar esto? Cualquier ayuda sería apreciada.
añadiendo al carrito artículos:
const handleAdd = (id, name, price, size, cat, color, quan = null, pick) => { console.log("add", id, name, price, size, cat, color, quan, pick); const productExist = cartItems.find( (item) => item.id === id && item.color === color ); if (productExist) { setCartItems( cartItems.map((item) => item.id === id && item.color === color ? { ...productExist, quantity: quan === "" || quan ? quan : +productExist.quantity + 1 } : item ) ); } else { setCartItems([ ...cartItems, { id, name, price, size, cat, color, quantity: 1, pick } ]); } };Tiene errores de servidor en su código.
Primero, no está configurando los valores en el orden correcto cuando llama al método handleAdd . Es por eso que enfrenta los problemas que ha descrito en su pregunta.
En segundo lugar, no hay ninguna propiedad en el item objeto llamado prodName , debería ser solo name .
Aquí está la solución de trabajo.