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

204
Visualizações
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 à 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