在用ant-design-vue的框架中,使用到了这种场景,就是点击编辑按钮,弹出modal模态框,渲染modal模态框中的form表单页面,并给表单赋值,但是在给表单赋值的时候,总是会报错。

错误提示: Warning: You cannot set a form field before rendering a field associated with the value.

经过一番查找后发现,造成这种原因一般有以下几个原因:

1.使用了表单的方法setFieldsValue(),来设置一组输入控件的值,传入的值为object,但是传入的值要和表单的值一一对应,能少传不能多传。

遇到这种情况的解决方式为:form渲染需要什么值你就传什么值

方式1:一个一个传

 this.form.setFieldsValue({ note: '123', mark: '456' })

方式2:

add (record) {  //record:需要引用的值
this.visible = true
this.mdl = Object.assign({}, record) // 浅拷贝
this.form.setFieldsValue(pick(this.mdl, 'note', 'mark')) // loadsh的pick方法
}

但是你会发现这么些还是报同样的错误。按照错误提示的原意:不能在表单渲染之前赋值

2.调用setFieldsValue()方法,需要放在$nextTick()函数中执行,改为如下即可:

this.$nextTick(()=>{
this.form.setFieldsValue(pick(this.mdl, 'note', 'mark')) // loadsh的pick方法
})

一般到这里就能解决问题了,如果还在报同样的错误,那就这样吧:

3.再放到setTimeout()方法中

this.$nextTick(() => {
setTimeout(() => {
this.form.setFieldsValue(pick(this.mdl, 'note', 'mark')) // loadsh的pick方法
})
})

最新文章

  1. 关于VS2010无法编译问题
  2. Javascript快速入门(下篇)
  3. js连续指定两次或者多次的click事件(解决办法)
  4. Hierarchy视图里的Transform和Camera组件
  5. Listener-监听器+ServletContext+ApplicationContext
  6. 中国地图 xaml Canvas
  7. ubuntu server nginx 安装与配置
  8. js创建table表格
  9. POM的配置文件
  10. 2015南阳CCPC G - Ancient Go 暴力
  11. 20160329javaweb之JSP -session入门
  12. Python第一天——入门Python(4)字典的常用操作
  13. IDatabaseInitializer<TContext>接口研究
  14. 基础模块 网络连接检查 js
  15. MFC 如何在一个窗体中嵌套在另一个窗体中
  16. Svg.Js 简介(转)
  17. Oracle管理监控之检查数据库和日常维护数据库
  18. hdu4719 Oh My Holy FFF 线段树优化dp
  19. input 下拉框 的实践
  20. 《TCP/IP 详解 卷1:协议》第 8 章:Internet 控制报文协议

热门文章

  1. Spark文档阅读之二:Programming Guides - Quick Start
  2. 使用LaTeX输入矩阵
  3. PowerBuilder中DW如何手动触发事件
  4. EduSoho二次开发功能:单词本使用说明
  5. web scraper无法解决爬虫问题?通通可以交给python!
  6. spring boot actuator监控需要注意的点
  7. msf stagers开发不完全指北(一)
  8. 深入理解RocketMQ(四)--消息存储
  9. ubuntu添加新的分辨率选项(干货)
  10. windows下 react-native环境搭建