本人开发的系统中有个添加数据与编辑数据的功能。为了减少代码量,两者使用了同一个dialog,通过不同按钮点击使用对应的方案进行显示。

对了方便,本人在添加数据的按钮的click事件中直接写入了resetFields。

之后正常运行过一段时间,但是就在最近(添加了很多代码)开始报错:

TypeError: Cannot read property 'resetFields' of undefined

同时我发现,只要显示过一次dialog,后面就不会报错了。所以我可以确定是因为代码量过大,对应的对象来不及生成,从而导致了读取了空对象。

所以我的解决方法就是:

      resetForm(formName)
{
if (this.$refs[formName]!==undefined) {
this.$refs[formName].resetFields();
}
}

通过判断对象,来避免错误(因为只有在新增数据会resetFields,但实际上第一次点击新增按钮是不需要执行resetFields的。而之后也不会报错了,所以这个解决方案刚好适合我)

网上有另一个解决方案,但是我试了一下不行

http://www.cnblogs.com/weiqinl/p/6708993.html

俗话说得好,知其然而知其所以然。所以我看以下blog

http://www.cnblogs.com/fly_dragon/p/6220273.html

经过测试发现在update钩子执行之后再执行resetFields就不会报错了。

Vue+elementUI开发中 Cannot read property 'resetFields' of undefined 问题解决以及原因分析的更多相关文章

  1. vue vuex开发中遇到的问题及解决小技巧

    1.在vue的开发中,如果使用了vuex,数据的组装,修改时在mutations中,页面是建议修改变量值的,如果强制修改,控制台就会出现错误.如下: 这种错误虽然不会影响结果,但是是vuex不提倡的方 ...

  2. Cannot read property 'resetFields' of undefined 问题及引申

    问题描述: 使用element开发我的后台系统,编辑和新增使用了同一个弹出框<el-dialog><el-form></el-form></el-dialog ...

  3. vue报错TypeError: Cannot read property 'protocol' of undefined

    错误信息如下所示: isURLSameOrigin.js?3934:57 Uncaught (in promise) TypeError: Cannot read property 'protocol ...

  4. 有关微信开发中errorcode:-1 errmsg:system error 错误的一点原因

    如果你在微信开发中遇到{"errcode":-1,"errmsg":"system error,hints:[req_id:]"}这样的错误 ...

  5. Vue 错误记录:Cannot read property 'beforeRouteEnter' of undefined

    点击某路由链接,页面提示: Cannot read property 'beforeRouteEnter' of undefined 查看代码并无手写beforeRouterEnter设置, 把页面内 ...

  6. JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...

  7. 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案

    转自:http://www.jianshu.com/p/89687f618837 原因分析   当我们在Android依赖库中使用switch-case语句访问资源ID时会报如下图所示的错误,报的错误 ...

  8. Electron+Vue+ElementUI开发环境搭建

    Node环境搭建 本文假定你完成了nodejs的环境基础搭建: 镜像配置(暂时只配置node包镜像源,部分包的二进制镜像源后续讨论).全局以及缓存路径配置,全局路径加入到了环境变量 $ node -v ...

  9. vue项目开发中遇到的问题总结--内部分享

     1.路由变化页面数据不刷新问题 这种情况一般出现在vue-router的history模式下,初次进入会执行钩子函数,再次进入时则不会. 解决方案: 监听路由变化 watch : { "$ ...

随机推荐

  1. Ubuntu 安装google 拼音

    一.安装fcitx apt-get install fcitx 二.安装google pinyin sudo apt install fcitx-googlepinyin 三. 安装 fcitx-co ...

  2. eclipse php pdt插件安装

    安装动态语言工具包: help->new install software->work with 框输入 http://download.eclipse.org/technology/dl ...

  3. 从认识面向对象到构造函数的标准写法(构造函数的继承、多态、ECMA6中新代替语法class) - 下

    笔记一个包含:认识面向对象.构造函数的封装.继承.多态.ECMA6中新代替语法class 下:包括构造函数的继承.多态.ECMA6中新代替语法class 构造函数的继承 从父一级延续下来的属性和功能( ...

  4. HTML中body元素的属性

    body元素的属性 属性 描述 text 设定页面文字颜色 bgcolor 设定页面背景颜色 background 设定页面背景图像 bgproperties 设定页面的背景图像为固定状态(不随页面的 ...

  5. java 托盘 实现二级菜单

    package com.zs; import java.awt.AWTException; import java.awt.CheckboxMenuItem; import java.awt.Fram ...

  6. 滴水穿石-07Java开发中常见的错误

    1:使用工具Eclipse 1.1 "语法错误" 仅当源级别为 1.5 时已参数化的类型才可用 设置eclipse,窗口—>java—>编译器—>JDK一致性调到 ...

  7. MyBatis - 10.MyBatis扩展

    1.PageHelpler分页插件使用 官方文档:中文 1.1 引入插件 1.1.1 引入的jar pagehelper-5.1.6.jar jsqlparser-1.2.jar 1.1.2 mave ...

  8. Angularjs 学习笔记-2017-02-05-初识Angular及app、model、controller、repeat指令和fileter、orderBy

    ng-app   定义作用域,从作用域处开始执行ng命令指令 ng-model 数据绑定字符,用于双向数据绑定 ng-controller ng控制台,定义function name($scope)来 ...

  9. Python初次安装使用教程

    Python官网: https://www.python.org/downloads/ 当前版本为3.7.0 下载(64位系统)exe文件进行安装. 双击安装运行 选择自定义安装路径         ...

  10. python基础——函数

    1.内置函数的调用: 可以在官方网站查找内置函数及说明,也可以通过help(abs)函数查看相应的信息. https://docs.python.org/3/library/functions.htm ...