Så jag ville validera några få fält i array baserat på andra boolean
fält. Här nedan är ett schema över min form.
{ "bankAccounts": [{ "accountType": "savings", "accountNumber": "11111111111" }], "bankingEnabled": true
}
Nu vill jag att matrisfälten endast ska valideras om bankingEnabled
är sant. Här nedan är en Yup
schema som löser detta problem:
{ bankAccounts: yup.array() .when('bankingEnabled', { is: true, then: yup.array().of( yup.object().shape({ accountType: yup.string().required('Please select your Account Type'), accountNumber: yup .string() .required('You must enter a Account Number') .matches(/^[0-9]+$/, 'Must be only digits') .min(5, 'Must be atleast 5 digits') .max(17, 'Must not be more than 17 digits'), }) ) })
}
Se här är jag kontrollerar villkorligt på bankindEnabled
fält med when
metod som om värdet på detta fält är true
sedan kommer andra valideringar att utföras.
Hoppas detta hjälper.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Köp och sälj aktier i PRE-IPO-företag med PREIPO®. Tillgång här.
- Källa: https://www.codementor.io/shyammakwana/yup-validate-array-fields-conditionally-24vdins6cv