Vue+elementUI开发中 Cannot read property 'resetFields' of undefined 问题解决以及原因分析...
发布日期:2021-08-29 06:13:51 浏览次数:8 分类:技术文章

本文共 744 字,大约阅读时间需要 2 分钟。

本人开发的系统中有个添加数据与编辑数据的功能。为了减少代码量,两者使用了同一个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就不会报错了。

转载于:https://www.cnblogs.com/blueroses/p/7722233.html

转载地址:https://blog.csdn.net/weixin_33985507/article/details/94071540 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java.util.Calendar获取时间区间问题
下一篇:C#使用Xamarin开发可移植移动应用目录

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月29日 09时21分10秒