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

502
Visualizações
Múltiples capas de validación de formularios yup - React y yup

Tengo la siguiente estructura de datos y tengo problemas para validar la matriz de configuración de objetos que deben enviarse cuando se envía el formulario. Estoy usando ReactJS y sí, la validación de formularios con Formik.

Estructura de datos del formulario:

 values = { "name": "test", "description": "desc", "type": { "value": 1, }, "config": [ { "grade": "A", "threshold": "1.0" }, { "grade": "B", "threshold": "2.0" }, ] }
  1. Los campos de configuración son obligatorios cuando mi selección (desplegable) escribe == 1 o escribe == 2, tengo esto funcionando para un campo de formulario simple como

description: yup.string().when("type", { is: (type) => type.value ===1 || type.value ===2, then: yup.string().required("Description required for type 1 or 2"), otherwise: yup.string().notRequired()})

  1. La configuración viene en pares de grado: y umbral: por lo que no puede tener solo uno, por ejemplo, "config": [ { "grado": "A" } ] es incorrecto. mientras que "config": [ { "grade": "A", "threshold": "1.0" }] es correcto .

necesita grado y umbral. Ya tengo la validación yup para verificar que ambos campos (calificación + umbral) se envíen y no solo uno.

captura de pantalla que muestra los campos de grado y umbral

Aquí está mi validación de formulario yup hasta ahora:

 config: yup.array().of( yup.object().shape( { grade: yup.string().when("threshold", { is: (threshold) => threshold !== undefined, then: yup.string().required( "If a threshold is entered, a grade is also required"), otherwise: yup.string().notRequired(), }), threshold: yup.number().when("label", { is: (grade) => grade !== undefined, then: yup .number() .typeError('score threshold must be a number') .required( "If a grade is entered, a threshold is also required" ), otherwise: yup.number().notRequired(), }), }, ["threshold", "grade"] ) ) });

Entonces, esencialmente, ahora necesito agregar la verificación para que los campos de configuración sean obligatorios si la selección desplegable es del tipo 1 o 2 y no estoy seguro de cómo hacerlo.

Ayuda apreciada. ¡Gracias!

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