Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda