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

241
Views
Formik `isSubmitting` y `isValidating` son `falsos` durante la validación previa al envío

Estoy enviando un formulario usando Formik. Quiero tener una lógica de validación ligeramente diferente dependiendo de si se desencadena por eventos de desenfoque/cambio o validación previa al envío. (En pocas palabras, durante el envío previo, solo quiero ejecutar la validación de sincronización: mi back-end hará la misma validación asíncrona que ejecuto en el desenfoque/cambio cuando envío el formulario, por lo que quiero omitirlo en el envío previo .) Mi función de validación se parece a esto:

 validate={(value) => { const error = validateSync(value); if (!error && !form.isSubmitting) { return validateAsync(value); } return error; }}

En este caso, estoy usando useFormikContext para obtener form.isSubmitting .

De acuerdo con los documentos de Formik sobre el envío, isSubmitting debe establecerse en true inmediatamente en la etapa previa al envío , antes de la etapa de validación . Esto no parece estar sucediendo, como puede ver si intenta enviar el formulario en este entorno limitado (verifique la consola para ver que tanto isSubmitting como isValidating son false ; de acuerdo con los documentos de Formik, ambos deberían ser true en este escenario).

Otro usuario tenía una pregunta similar , pero la respuesta no aborda el (posible) error subyacente con Formik.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Usé el gancho useRef de React para hacer referencia a la versión actual del formulario:

 const form = useFormikContext(); const formRef = useRef(); formRef.current = form; // within a delayed callback: function delayedCallback() { // pulls the current value of isSubmitting, whenever the delayedCallback fires const { isSubmitting } = formRef.current; };

Funciona al 100%

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!