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

146
Views
Using when with objects in array in Yup

I have the following object:

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

When isAgeRequired flips to true, in my Yup schema I would like to make the age value for each object in the people array require.

I have the following yup schema definition, but right now it seems to validate successfully even if the above requirements are not met:

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 answers
Answer question

0

The problem is that the parent context is not available in parent , so one way around this was to "raise" the isAgeRequired .when .when sibling like so:

 // 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 Report
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!