Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

498
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!