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

203
Vistas
Yup not validating when conditions are met

I have additional fields that only gets shown if a checkbox is selected (Boolean value is true). These additional fields also need validation but using the .when() method doesn't seem to react to the checkbox being true as a condition. The validation part of my code looks like:

  const schema = useMemo(
    () =>
      yup
        .object()
        .shape({
          type: yup
            .string()
            .label(translate('Forms.EmailForm.type.label'))
            .required(),
          person: yup
            .object()
            .shape({
              firstName: yup
                .string()
                .required()
                .trim()
                .min(1)
                .max(255)
                .label(
                  translate(
                    'Forms.EmailForm.firstName.label',
                  ),
                ),
              hasAddress: yup.boolean(),
              address: yup.boolean().when('hasAddress', {
                is: true,
                then: yup
                  .object()
                  .shape({
                    firstLine: yup
                      .string()
                      .required()
                      .max(255)
                      .label(
                        translate(
                          'Forms.EmailForm.address.firstLine.label',
                        ),
                      ),
                    secondLine: yup
                      .string()
                      .max(255)
                      .label(
                        translate(
                          'Forms.EmailForm.address.secondLine.label',
                        ),
                      ),
                  }),
              }),
            }),
        }),
    [],
  );

  const form = useForm<EmailForm>({
    resolver: yupResolver(schema),
    defaultValues: {
      type: 'PERSON',
    },
  });

about 4 years ago · Juan Pablo Isaza
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