开发中总是会遇到形形色色的问题,各种各样的坑,在使用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,用不到的不要赋值即可。
以上纯属个人愚见,如有更好的解决方案,欢迎留言一起讨论!
解决a-modal表单渲染问题:Youcannotsetaformfieldbeforerenderingafieldassociatedwiththevalue
本文讲述了在开发中遇到的关于a-modal初始化表单时的错误,重点在于设置默认值时机的问题。解决方法包括确保form表单已显示、在$nextTick中调用setFieldsValue以及检查数据匹配。作者鼓励读者分享更多解决方案。
4379

被折叠的 条评论
为什么被折叠?



