Cannot read property 'resetFields' of undefined

我们先了解一下resetFields的作用

方法名说明参数
resetField对该表单项进行重置,将其值重置为初始值并移除校验结果-

我遇到问题的代码

 addDevice () {
                this.title= "【新增】设备管理";
            //打开新增弹窗前先重置表单 避免表单出现上一次新增的校验数据
                this.$refs['form'].resetFields();
            //弹出新增对话框
                this.adddialog = true;
            },

结果浏览器报 Cannot read property 'resetFields' of undefined

原因是在弹数新增能对话框前 form表单并没有编译渲染进dom里面 所以导致this.$refs['form'].resetFields(); 报错 

只需要先弹出form 再重置表单即可避免问题

    addDevice() {
      this.title = '【新增】设备管理';
      // 弹出新增对话框
      this.adddialog = true;
      // 用 this.nextTick 或者用个定时器来确保 dom 渲染并更新
      this.$nextTick(function() {
        // 打开新增弹窗前先重置表单 避免表单出现上一次新增的校验数据
        this.$refs.form.resetFields();
      });
    }

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页