我正在使用 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);
}
显然这是行不通的,因为最后一个条件为真将覆盖前一个条件。
如果所有条件都为真,那么最终结果会是这样。
valSchema[id] = Yup.string()
.required(errorText[id].default)
.matches(reExp, field.validation[0].message);
.matches(reExp1, field.validation[1].message);
有任何想法吗?
谢谢。