Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

114
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!