关闭弹框,清除表单this.$refs.uploadForm.resetFields();时报错

项目场景:

数据中台搜索管理页面的新增、修改共用弹框,关闭时需清空


问题描述

“TypeError: Cannot read properties of undefined (reading ‘resetFields’)”


原因分析:

mouted加载table数据以后,隐藏的 Dialog 并没有编译渲染进 dom 里面。

所以当通过点击事件,Dialog 弹出的时候,$refs 并没有获取到 dom 元素导致 ‘resetFields’ of undefined


解决方案:

    // 修改
    editDocument(row) {
      this.dialogVisible = true;
      this.uploadTitle = "修改";
      this.fileHidden = false;
      this.uploadForm = JSON.parse(JSON.stringify(row));
    },
    
    // 关闭弹框
    handleClose() {
      this.dialogVisible = false;
      // 1.表单初始话
      this.uploadForm = {
        name: "",
        desc: "",
        type: "",
        userName: this.loginName,
      };
      // 2.添加判断
      if (this.$refs.uploadForm !== undefined) {
        this.$refs.uploadForm.resetFields();
      }
    },
    // 新增确认和修改确认后调用 this.handleClose()

拓展:

this.$refs.form.resetFields(); //移除校验结果并重置字段值

this.$refs.form.clearValidate(); //移除校验结果

解决参考:https://blog.csdn.net/weixin_45393094/article/details/115584032

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值