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

242
Visualizações
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 Respostas
Responde à pergunta

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 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