Desde la interfaz de usuario a continuación, quiero generar algo como esto en mi estado. Quiero que si marque el ketchup, se almacenará en una matriz de objetos u objetos y, después de eso, si marco el tomate extra, se almacenará en el mismo objeto.
[{title: 'Barnes Chapman', options:{extra large: '8.0', ketchup: '1.00', extra tomato: '2' } }]He creado una función pero la función no funciona correctamente. El siguiente código es el código inicial de mi función. dentro del parámetro del producto hay un título. e significa el valor objetivo y el nombre.
const [item, setItem]= useState() const getItemValues =(e, product)=>{ }Código JSX: los valores de las casillas de verificación son dinámicos. He comentado los valores.
{product.ingredients.map((ingredient) => { return ( <li onChange={(e) => getItemValues(e.target, product)}> <label className="container_check"> {ingredient.title} // "ketchup" <span>+ $2</span> <input type="checkbox" value={ingredient.price} // "1" name={ingredient.title} // "ketchup" /> <span className="checkmark"></span> </label> </li> ); })}Es posible que no desee que el estado sea una matriz. Pero simplemente un objeto.
Puedes intentar hacer algo como:
const options = { ketchup: '1.00' } setState(oldState => {...oldState, options: {...oldState.options, ...options } })