Ant Design Vue Form表单验证后无法绑定数据的解决办法

本文围绕Ant Design Vue Form表单验证后无法绑定数据的问题展开。介绍了官方表单验证链接,指出原验证方式复杂臃肿。分析了使用value或v - model绑定数据失效的原因,最终提出利用rule默认值initialValue,在返回数据时遍历赋值解决绑定问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ant Design Vue Form表单验证后无法绑定数据的解决办法

官方网站ant design的表单验证链接:https://vue.ant.design/components/form/

https://ant.design/components/form-cn/

验证方式很是不爽,显得复杂臃肿

 

 

可以换一种方式,由于rules验证其实是一个数组,那么我直接在data中定义,如下,页面这样

data中定义rule数组

注意验证number需要将其转换一下

但是虽然验证可以实现,提示报错

Warning: `getFieldDecorator` will override `value`, so please don't set `value and v-model` directly and use `setFieldsValue` to set it.

百度一查便知,使用ant design结合vue做表单验证后会将value值覆盖掉,也就是说使用value或者v-model绑定数据将会失效,但是可以取值,做修改的时候,返回数据无法绑定,按照官网的解决办法是使用setFieldsValue方法动态赋值,但是依然不舒服。

后来想了个办法,rule有默认值initialValue,只要在修改时返回的数据赋值给对应字段的rule默认值即可,直接赋值会报未定义或者null的错,我们需要在返回数据的时候重新绑定

我们可以在返回数据的时候进行遍历赋值

注意rule中的数组名如leaveName需要跟返回的数据名一致,这样先遍历rule减少压力,挨个赋值即可,每次取回数据重新调用下即可。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值