这篇文章主要介绍“vue antd的from表单中验证rules中type的坑怎么解决”,在日常操作中,相信很多人在vue antd的from表单中验证rules中type的坑怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue antd的from表单中验证rules中type的坑怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
vue antd的from表单验证rules中type的坑
我的代码如下
<a-form ref="formRef" :model="detailState" layout="horizontal" :labelCol="{ span: 6 }" :wrapperCol="{ span: 14 }" :rules="rules" > <a-form-item label="分组" name="groupId"> <a-select v-model:value="detailState.groupId"> <a-select-option v-for="item in groupsList" :key="item.id" :value="item.id" >{{ item.groupName }} </a-select-option> </a-select> </a-form-item> ... </a-from>
const detailState = reactive({ groupId: "", ... }); const rules = { groupId: [ { required: true, message: "分组必填", trigger: "change", }, ], }
明明选择的里面有数据,但是还是会校验出来
报错如下
参考官网中的:
// 官网代码 <a-form-item label="Activity zone" name="region"> <a-select v-model:value="formState.region" placeholder="please select your zone"> <a-select-option value="shanghai">Zone one</a-select-option> <a-select-option value="beijing">Zone two</a-select-option> </a-select> </a-form-item>
// 官网代码 const rules = { region: [ { required: true, message: 'Please select Activity zone', trigger: 'change', }, ], ... }
感觉并没有什么区别,看到其他人用到了type,类型是array;我也就试了试:
const rules = { groupId: [ { required: true, message: "分组必填", trigger: "change", type: "array", }, ] }
但是依然报错
我想我的 groupId 定义的类型是 string ,而 type 的默认值也是string,为什么会报错呢,而看别人类似的代码,用的 array ,我把 groupId 的类型也改成数组后,还是报错。实在不理解…
虽然感觉到是一个小问题,但是自己就是尝试了很多,也看了别人的,最终没解决,最后问了大佬后,得知,这里的type
校验的是<a-select-option/>
中value
的值。
由于我得到的 item.id 是 number 类型,所以最后需要在 rules 中写的 type 为 number 即可。
const rules = { groupId: [ { required: true, message: "分组必填", trigger: "change", type: "number", }, ] }
这样就不会报错了。
到此,关于“vue antd的from表单中验证rules中type的坑怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云搜网网站,小编会继续努力为大家带来更多实用的文章!