说我有一个Yup.string()
开始。
然后,在某个点上,像在循环中一样,我想在其上有效地添加required
规则:
Yup.string().required('This field is required')
。
然后也许还要添加一些.email
检查。
我已经尝试过这种方法,但是似乎没有用:
function validationSchemaConstructor(question) {
const schema = Yup.string();
question.validation_rules.forEach(rule => {
if ("is_required" in rule) {
schema.required("Hey man nice shot");
}
});
return schema;
}
答案 0 :(得分:0)
我的错误-我需要再次分配schema
的cuz链接,方法是再次返回该对象:
function validationSchemaConstructor(question) {
let schema = Yup.string();
question.validation_rules.forEach(rule => {
if ("is_required" in rule) {
schema = schema.required("Hey man nice shot"); // mistake here!
}
});
// un-comment to test dynamically adding additional rule
// schema = schema.email("email plesss");
return schema;
}
尽管不确定我是否应该在某个地方使用clone()
。
请告知是否有更好的方法:)