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" }, ] } 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()})
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!