Conditional validation patterns
Using spread
const formSchema = computed(() => {
let schema = {
name: yup.string().required().label("Name"),
email: yup.string(),
quantity: yup.number().required().moreThan(0).lessThan(11).label("Quantity"),
productId: yup.number().required().label("Product"),
shipMethod: yup.string().required().label("Shipping Method"),
};
// example of turning off validation for a field hidden by an external variable
// .when() can alternately be used to conditionally validate based on form values
if (!hideEmail) {
schema = {
...schema,
email: yup.string().label("Email").email().required(),
};
}
return yup.object(schema);
});Using ternaries
const formSchema = computed(() => {
let schema = {
name: yup.string().required().label("Name"),
email: hideEmail ? yup.string() : yup.string().label("Email").email().required(),
quantity: yup.number().required().moreThan(0).lessThan(11).label("Quantity"),
productId: yup.number().required().label("Product"),
shipMethod: yup.string().required().label("Shipping Method"),
};
return yup.object(schema);
});