Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

111
Visualizações
React Hook Form v7, la solicitud POST se envía cada vez que escribo en un campo

Tengo un formulario y quiero actualizar los valores allí (solicitud de API: PUT "https://www.test.com/account/update" ). Estoy usando React Hook Form, como sigue:

 import { useForm } from "react-hook-form"; const { control, register, handleSubmit, formState: { errors }, getValues, setValue, } = useForm({ mode: "onSubmit", }); const updateData = async () => { const data = { firstName: getValues("firstName"), lastName: getValues("lastName"), }; axios.put("https://www.test.com/account/update", data, { headers: header }) .then((response) => { if (response.status == 201) { setFirstName(response.data.firstName); setLastName(response.data.lastName); return response.data; } else { console.log("error"); } }); }; return ( <React.Fragment> <IonPage> <IonContent> <IonGrid> <form onClick={handleSubmit(updateData)} > <IonItem> <IonLabel>Firstname</IonLabel> <IonInput required value={firstName} {...register("firstName")} ></IonInput> </IonItem> <IonItem> <IonLabel>Lastname</IonLabel> <IonInput required value={lastName} {...register("lastName")} ></IonInput> </IonItem> <IonButton type="submit" > Save </IonButton> </form> </IonGrid> </IonContent> </IonPage> </React.Fragment> ); };

El problema es que el formulario se envía cada vez que escribo en un campo . Quiero que se envíe solo cuando haga clic en el botón Enviar. Leí los documentos sobre useForm() aquí: https://react-hook-form.com/api/useform pero no encontré una solución. ¿Cómo puedo cambiar eso?

¡Gracias de antemano!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cambie onClick a onSubmit . De esa manera, el envío del formulario se activa cuando se hace clic en el botón con type="submit"

 import { useForm } from "react-hook-form"; const { control, register, handleSubmit, formState: { errors }, getValues, setValue, } = useForm({ mode: "onSubmit", }); const updateData = async () => { const data = { firstName: getValues("firstName"), lastName: getValues("lastName"), }; axios.put("https://www.test.com/account/update", data, { headers: header }) .then((response) => { if (response.status == 201) { setFirstName(response.data.firstName); setLastName(response.data.lastName); return response.data; } else { console.log("error"); } }); }; return ( <React.Fragment> <IonPage> <IonContent> <IonGrid> <form {/* onClick={handleSubmit(updateData)} */} onSubmit={handleSubmit(updateData)} > <IonItem> <IonLabel>Firstname</IonLabel> <IonInput required value={firstName} {...register("firstName")} ></IonInput> </IonItem> <IonItem> <IonLabel>Lastname</IonLabel> <IonInput required value={lastName} {...register("lastName")} ></IonInput> </IonItem> <IonButton type="submit" > Save </IonButton> </form> </IonGrid> </IonContent> </IonPage> </React.Fragment> ); };
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda