Vue.js 动态添加要验证的规则
使用vee validate,Vuejs的验证库,支持反应式验证模式,我正在考虑在动态字段上添加验证 我要归档的内容 我得到了一个要验证的字段的动态列表。每个字段都包含有关输入类型(字符串、布尔值、整数等)的信息,以及是否需要输入 示例:Vue.js 动态添加要验证的规则,vue.js,vuejs3,yup,vee-validate,Vue.js,Vuejs3,Yup,Vee Validate,使用vee validate,Vuejs的验证库,支持反应式验证模式,我正在考虑在动态字段上添加验证 我要归档的内容 我得到了一个要验证的字段的动态列表。每个字段都包含有关输入类型(字符串、布尔值、整数等)的信息,以及是否需要输入 示例: computed: { schema () { let schema = Yup.object ({ category: Yup.object ().shape ({ name:
computed: {
schema () {
let schema = Yup.object ({
category: Yup.object ().shape ({
name: Yup.string ().max (255).required ()
})
});
this.fields.forEach((field)=>{
console.log(field);
})
return schema;
},
},
return Yup.object ({
category: Yup.object ().shape ({
name: Yup.string ().max (255).required (),
fields: Yup.array ().of (
Yup.object ().shape ({
value: Yup.lazy (val => {
console.log (val);
return Yup.string ();
})
),
})
});
在forEach
-循环中,您可以看到我正在记录字段。结果是:
Proxy {id: 1, name: "example_integer", placeholder: "", type: "integer", required: true, value: null}
Proxy {id: 2, name: "example_string", placeholder: "Type something", type: "string", required: false, value: null}
对于本例,架构应按两条规则展开:
example_integer: Yup.number().required(),
example_string: Yup.string().nullable()
现在我想知道我更喜欢哪种方式:
schema
computed: {
schema () {
let schema = Yup.object ({
category: Yup.object ().shape ({
name: Yup.string ().max (255).required ()
})
});
this.fields.forEach((field)=>{
console.log(field);
})
return schema;
},
},
return Yup.object ({
category: Yup.object ().shape ({
name: Yup.string ().max (255).required (),
fields: Yup.array ().of (
Yup.object ().shape ({
value: Yup.lazy (val => {
console.log (val);
return Yup.string ();
})
),
})
});
但不幸的是console.log(val)
只返回该对象的值,但在这种情况下,我需要检查类型和必需的道具