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

402
Vistas
Sí, ¿validación condicional dependiendo de si otro campo es válido?

Estoy trabajando en un proyecto con un formulario de registro largo hecho con MUI, formularios de gancho de reacción y sí. Habría un campo representado a la vez con un botón "Siguiente" para cambiar el campo de entrada mostrado al siguiente (es decir, pasar del campo de correo electrónico al campo de nombre). En este momento no me permite enviar el campo de correo electrónico y mostrar el campo de nombre porque quiere validar ambos ya que no hay validación condicional. Tengo el siguiente esquema:

 const schema = yup.object().shape({ email: yup.string().email().required(), firstName: yup.string().required("Please enter your first name"), });

Por lo que he leído en línea, entiendo que necesito usar el método .when para el campo firstName, excepto que no sé cómo verificar si el campo de correo electrónico es válido. He probado lo siguiente:

 const schema = yup.object().shape({ email: yup.string().email().required(), firstName: yup.string().when("email", { is: (value) => value !== undefined, then: yup.string().required("Please enter your first name"), otherwise: yup.string().notRequired(), }), });

Pero el valor se define en Cambiar, por lo que no funciona.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Me lo imaginé. He dividido el esquema principal en un emailSchema y un nameSchema, y luego utilicé el método concat basado en el paso del registro (siendo 1 el paso con el primer campo de nombre).

 const schema = step === 1 ? emailSchema.concat(nameSchema) : emailSchema
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