Estoy en un componente secundario, que recibe apoyo del customer de su componente principal.
Entonces, quiero actualizar el formulario con valores provenientes del customer , así que hice esto:
useEffect(() => { let isMounted = true; if (isMounted) { reset({ firstname: customer.firstname, lastname: customer.lastname, address: { street: customer.address.street, city: customer.address.city, country: customer.address.country, }, }); } return () => { isMounted = false; }; }, [customer, reset]); pero en realidad, noté que no está cambiando correctamente los valores dentro del objeto anidado de address ( street y la city se actualizan, country no).
Sin embargo, si estoy usando setValue , actualizará el valor en consecuencia. Entonces mi pregunta es: ¿cuál entre reset() y setValue() debería usarse para este caso específico?
Gracias
Según su caso de uso, debe usar el reset y está haciendo lo correcto allí, pero puede que el menú desplegable/selector del país caiga en el caso mencionado a continuación según la documentación react-hook-form . (Lea la primera línea)
Para componentes controlados como React-Select que no exponen un accesorio de referencia, deberá restablecer el valor de entrada manualmente con setValue o conectar su componente a través de useController o Controller.
Creo que este fragmento de código es correcto, pero el ejemplo de código de formulario ayudará a comprender el contexto de una manera mucho mejor.