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

147
Vistas
Usando when con objetos en matriz en Yup

Tengo el siguiente objeto:

 const values = { people: [ { name: "Mark", age: null }, { name: "Shark", age: 31 } ], isAgeRequired: false };

Cuando isAgeRequired cambia a true , en mi esquema Yup me gustaría hacer que el valor de age para cada objeto en la matriz de people requiera.

Tengo la siguiente definición de esquema yup, pero en este momento parece validarse con éxito incluso si no se cumplen los requisitos anteriores:

 const validator = object({ people: array( object({ name: string().required(), age: number() .nullable() .when("isAgeRequired", { is: true, then: (schema) => schema.required() }) }) ) });
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema es que el contexto principal no está disponible en parent , por lo que una forma de evitar esto era "levantar" la isAgeRequired .when .when hermano así:

 // Declare the default person schema separately because I'll want to reuse it. const person = { name: string().required(), age: number().nullable() } const validator = object({ people: array( object(personSchema) ).when('isAgeRequired', (isAgeRequired, schema) => { if (Required) { return array({ ...personSchema, age: personSchema.age.required() // Override existing age rule and attach .required to it }) } return schema; }) });
about 4 years ago · Santiago Trujillo Denunciar
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