我正在使用 yup 验证并尝试构建一个条件验证对象。
我的问题是,如何在没有硬编码的情况下将所需的和匹配的对象添加到 Yup.string() 对象。类似于链接 jQuery 函数的方式。
这是我试图实现的一个例子:
if (field.required) {
valSchema[id] = Yup.string().required(errorText[id].default);
}
if (field.validation) {
valSchema[id] = Yup.string().matches(re, field.validation[0].message);
}
if (field.otherValidation) {
valSchema[id] = Yup.string().matches(re, field.validation[1].message);
}
Run Code Online (Sandbox Code Playgroud)
显然这是行不通的,因为最后一个条件为真会覆盖前一个条件。
那么如果所有条件都为真,最终结果会是这样。
valSchema[id] = Yup.string()
.required(errorText[id].default)
.matches(reExp, field.validation[0].message);
.matches(reExp1, field.validation[1].message);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢。