开发中总是会遇到形形色色的问题,各种各样的坑,在使用a-modal
初始化表单时,报了这样一个错误,You cannot set a form field before rendering a field associated with the value
如何解决呢,一遍遍查资料,一遍遍尝试最终发现原来是这个原因。需要让弹框显示出来再设置默认值,OK搞定
报错是因为把这句代码this.visible = true
放在了this.form.setFieldsValue
的后面,这是因为弹框默认是不显示的,需要显示后才能正常的使用this.form.setFieldsValue
方法
更改后的
OK,改完不报错了!
当控制台报You cannot set a form field before rendering a field associated with the value
的时候可以考虑从以下3个方面解决。
1、检查在使用this.form.setFieldsValue
之前form
表单是否已经显示。比如我上面this.visible = true
是不是放到了调用this.visible = true
之前。
2、在this.$nextTick()
中使用this.form.setFieldsValue
。
3、当表单绑定的数据和属性不匹配时也会出现这个问题,这时就要检查在使用this.form.setFieldsValue
时,赋值的数据是否一一匹配field
,用不到的不要赋值即可。
以上纯属个人愚见,如有更好的解决方案,欢迎留言一起讨论!