题目描述
使用iview的select组件,组件里面的数据需要异步获取,在获取回来赋值之后,触发了Form里面的rules验证,导致一打开页面就会出现错误提示
题目来源及自己的思路
使用created去获取数据回来赋值、去掉了rules里面的trigger: 'change',还是会触发rules的验证,出现错误提示
把rules里面的trigger改成blur,初始化的时候不会报错,但是blur的时候不能通过rules的验证,选择了数据,错误提示不会消失
相关代码
select组件
<FormItem label="资金类别" prop="fundsCategory">
<Select v-model="formValidate.fundsCategory">
<Option v-for="item in initData.fundsCategory" :value="item.value" :key="item.value" :label="item.label"></Option>
</Select>
</FormItem>
Form组件
<Form ref="projectAddForm" :model="formValidate" :rules="ruleValidate" :label-width="180">
异步获取select的数据
this.initData.fundsCategory = (await Ajax.get('/api/xxxxxxxxx')).data.result.map((item:any) => {
return {
label: item.displayName,
value: item.id
}
})
rules验证里面的规则
fundsCategory: [{ required: true, type: 'number', message: '请选择资金类别' }],
升级到iview 3.0.0后就没这个问题了。