问题描述
我们有一个包含多语言输入的大型表格-一些字段:
- 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 (将#修改为@)