要添加验证,您可以使用 concat,在此处查看文档:
https://github.com/jquense/yup#mixedconcatschema-schema-schema
您可以定义基本验证并稍后添加其他验证。请注意,您只是同一类型的 concat。
例子:
const requiredSchema = Yup.string().required();
const min2Schema = Yup.string().min(2, 'Seems a bit short...');
const passwordSchema = Yup.string()
.label('Password')
.max(10, 'We prefer insecure system, try a shorter password.')
.concat(requiredSchema)
.concat(min2Schema);
所有这些模式都是 .string() 模式。您可以将对象与对象、字符串与字符串、数字与数字等连接起来。
为了进行条件验证,您只需添加一个内联条件:
let isRequired = true;
const nameAndPasswordSchemaObject = Yup.object().shape({
name: nameSchema.concat( isRequired ? requiredSchema : null ),
password: passwordSchema,
});
yup-objects 也是如此:
const emailSchemaObject = Yup.object({
email: Yup.string().concat(requiredSchema)
});
const validationSchema = nameAndPasswordSchemaObject.concat(emailSchemaObject);
我希望这会有所帮助。
关于删除模式,我在文档中看不到任何内容(但从不需要它)