Estoy tratando de actualizar el estado usando el enlace useState para React. Sin embargo, creo que lo estoy usando incorrectamente o al menos no de la manera prevista.
Tengo una clase que se inicializa.
const [form, setForm] = useState(new Form());Luego estoy agregando elementos a este formulario:
const element = ... setForm(form => ({ ...form, elements: [ ...form.elements, element ] });Sin embargo, esto no parece actualizar la interfaz de usuario para reflejar este cambio.
También he probado lo siguiente:
setForm(form => { form.elements.push(element); return form; });La única forma en que puedo hacer que funcione es haciendo lo siguiente y, como puedes imaginar, se convierte en una gran montaña para escalar, ya que está un poco por todas partes:
const duplicated = JSON.parse(JSON.stringify(form)); duplicated.elements.push(element); setForm(new Form(duplicated));¿Existe un mejor enfoque para hacer esto en lugar de tener que duplicar el objeto cada vez?