如何解决控制台element-ui报错Cannot read property ‘resetFields’ of undefined
最近在做一个后台项目,采用的是vue全家桶和element-ui桌面端组件库,我也是第一次使用element-ui,所以遇到了很多问题,正如标题一样,所以有必要整理记录这次的采坑经验,为后续需要的小伙伴提供帮助,当然大佬可以略过。
问题描述:使用element开发我的后台系统,编辑和新增使用了同一个弹出框<el-dialog><el-form></el-form></el-dialog>
绑定了数据data里的commentForm对象
为了在新增弹出框清空表单,使用了this.$refs.formName.resetFields()
每次第一次点击新增显示弹出框,都会报错
“[Vue warn]: Error in event handler for “click”: “TypeError: Cannot read property ‘resetFields’ of undefined””
分析原因
mouted加载table数据以后,隐藏的弹出框并没有编译渲染进dom里面。
所以 click=”dialogFormVisible=true;resetForm(‘dlgForm’)”click弹出的时候$refs并没有获取到dom元素导致’resetFields’of undefined
解决办法
1.($nextTick dom下一次更新之后)
resetForm(formName) { this.$nextTick(() => { this.$refs.formName.resetFields(); }) },
2、(如果是第一次就点击新增就没必要reset, 根据元素undefined判断)
if (this.$refs.formName !== undefined) { this.$refs.formName.resetFields(); }
注意:对DOM一系列的js操作最好都要放进Vue.nextTick()的回调函数中
1. 本站所有免费资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的免费资源的准确性、安全性和完整性,免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或技术教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5. 加入前端开发QQ群:565733884,我们大家一起来交流技术!
码云笔记 » 如何解决控制台element-ui报错Cannot read property ‘resetFields’ of undefined
2. 本站不保证所提供下载的免费资源的准确性、安全性和完整性,免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或技术教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5. 加入前端开发QQ群:565733884,我们大家一起来交流技术!
码云笔记 » 如何解决控制台element-ui报错Cannot read property ‘resetFields’ of undefined