Entonces, tengo una aplicación de comercio electrónico que, para un producto, quiero que los clientes publiquen diferentes variantes del producto con la cantidad y el precio de la variante. Luego, al guardar, quiero que el producto se guarde según la cantidad de variantes.
Por ejemplo, si hay 3 variantes del producto, el producto debe guardarse 3 veces con el mismo nombre y descripción, pero cada guardado tendrá una sola variante.
Esto es lo que he hecho.
const [values, setValues] = useState([]) function addItem(e) { e.preventDefault() setValues([...values, { quantity, weight, price }]) setQuantity('') setWeight('') setPrice('') } <input type='text' placeholder='Product Name*' value={productName} onChange={(e) => setProductName(e.target.value)} /> <div className='form-group'> <input type='number' placeholder='Quantity' value={quantity} name={quantity} onChange={(e) => setQuantity(e.target.value)} /> <input type='number' placeholder='Weight (kg)' value={weight} name={weight} onChange={(e) => setWeight(e.target.value)} /> <input type='number' placeholder='Price' value={price} name={price} onChange={(e) => setPrice(e.target.value)} /> <button onClick={addItem}>Add</button> </div>Al hacer clic, el elemento se agrega a un estado. Luego onSubmit, trato de recorrer el estado
for (let i = 0; i < values.length; i++) { const res = await createProduct({ productName, price: price[i], quantity: quantity[i], weight: weight[i], }) console.log(res) }no funciona
Aquí está el controlador expreso
exports.createProduct = async (req, res) => { try { const newProduct = await Product.create(req.body) res.json(newProduct) } catch(err) { console.log(err) } }Intente cambiar su función React onClick:
for (let i = 0; i < values.length; i++) { const { price, quantity, weight } = values[i]; const res = await createProduct({ productName, price, quantity, weight }) console.log(res) }