queryForm: { certType: '1', certno: '', name: '', deathTimeOption: [] ,beginTime: '', endTime: ''}, validateRules: { certType:[ { required: true, message: '证件类型不能为空' } ], certno: [ { required: true, message: '证件号码不能为空' }, this.queryForm.certType === '1' ? { validator: (rule, value) => { return new Promise((resolve, reject) => { const result = verify(value); if (result) { resolve() } else { reject(new Error('请输入正确的身份证号码')) } }) } } : {} ] } ;为啥还会报错 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'certType')
时间: 2024-02-10 07:18:13 浏览: 76
这个错误信息可能是因为 `this.queryForm` 对象没有被正确绑定到组件实例(`this`)上。你可以尝试在 `validateRules` 中使用箭头函数,这样可以确保 `this` 指向正确的组件实例。
修改后的代码如下:
```
queryForm: {
certType: '1',
certno: '',
name: '',
deathTimeOption: [],
beginTime: '',
endTime: ''
},
validateRules: {
certType: [
{
required: true,
message: '证件类型不能为空'
}
],
certno: [
{
required: true,
message: '证件号码不能为空'
},
({ queryForm }) => {
return queryForm.certType === '1'
? {
validator: (rule, value) => {
return new Promise((resolve, reject) => {
const result = verify(value);
if (result) {
resolve();
} else {
reject(new Error('请输入正确的身份证号码'));
}
});
}
}
: {};
}
]
};
```
这里使用了箭头函数,将 `queryForm` 对象作为参数传递进去。这样就可以确保 `queryForm` 对象的正确性。
希望这个解决方案可以帮助到你。如果问题还没有解决,请提供更多的上下文信息,我会尽力帮助你解决问题。
阅读全文