如何解决Yup验证:不需要一种语言的全部或全部字段
我们有一个包含多语言输入的大型表格-一些字段:
- name_german
- name_french
- name_italian
- description_german
- description_french
- description_italian
- ...更多
如果一个德国字段被填满,则应要求所有其他德国字段。其他语言也是如此。应该可以同时填充德国和法国字段,但意大利字段可以为空。
以某种方式我无法正常工作。这是我尝试过的:
Yup.object().shape({
name_german: Yup.string().test(
'requireAllIfOneIsFilled','formvalidation.required.message',function () {
return multiLanguageTest(this.parent,'german');
},),... // same for other fields
});
然后像这样进行测试:
const multiLanguageTest = (formValues,language: 'german' | 'french' | 'italian'): boolean => {
const errorCount = dependentFields.reduce((errorCount,rawFieldName) => {
const postFixedField = `${rawFieldName}_${language}`;
if (!formValues[postFixedField]) {
return errorCount + 1;
}
return errorCount;
},0);
return errorCount === 0;
};
这给了我一个不可容忍的行为。我使用.test
的概念有误吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。