ant design ui表单赋值报错

You cannot set a form field before rendering a field associated with the value. You can use getFieldDecorator(id, options) instead v-decorator="[id, options]" to register it before render.

使用ant desion 给表单赋值的时候报这个错
原因赋值的时候赋了多余的、表单里面不存在的字段
比如表单只有两个字段 username和password
而后端接口一般查询直接给你select * from users……返回一大坨无用数据:username,passwowrd,gender,createtime,birthday(多余的字段)……等等多余的你用不到的字段
这个时候你不管三七二十一一把塞进去this.form.setFieldsValue(接口返回的那个用户对象)就会报这个错

解决方法:
在这里插入图片描述
用这个api方法获取到当前页面所有待赋值的控件所绑定的字段
var 页面的所有控件绑定的值 = this.form.getFieldsValue()

var setValues = {}
for(var item in 页面的所有控件绑定的值){
setValues[item] = 你的所有数据item
}
此时setValues就等于你页面需要赋值的控件的值{username:‘张三’,‘password’:‘111111’}
再调用这个方法就好了 亲测可行不报错 this.form.setFieldsValue(setValues)

用上面的代码是用于页面有多个控件的时候动态赋值,如果你的表单只有两三个可以直接
this.form.setFieldsValue({
“字段1”:“value1”,
“字段2”:“value2”,
“字段3”:“value3”
})
就是这个原因,希望帮到您!

看到这里了求点个赞不过分吧!!!!

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值