当前位置: 首页 > news >正文

ElementUI`resetFields()`方法避坑

使用ElementUI中的resetFields()方法有哪些注意点

场景一

  • 场景一:当编辑弹出框和新增弹出框共用时,编辑数据后关闭编辑弹出框时调用this.$refs.form.resetFields()无法清空弹出框
    在这里插入图片描述
    问题代码

        // 点击新增按钮handleAdd() {this.dialogVisible = truethis.modalType = 0},// 弹窗关闭触发handleClose() {// 清空表单this.$refs.form.resetFields()this.dialogVisible = false},handleEdit(val) {// console.log(val)this.dialogVisible = truethis.modalType = 1// 注意:需要对当前数据进行深拷贝,否则会this.form = val// this.form = JSON.parse(JSON.stringify(val))}
    

    问题分析

    原因是由于restFile只是将表单的值初始化,并不是清空表单,详情见ElementUI官网
    在这里插入图片描述
    当我们点击编辑按钮时,由于是this.form = val,导致表单的初始值发生了改变,此时就会你点击关闭弹窗后再打开会发现表单还是第一次点击编辑按钮的那个值,即使你后面又点击了编辑按钮,它最终只显示第一次点击编辑按钮出现的那个表单的值。

    解决方案:表单赋值时,采用深拷贝

    在这里插入图片描述

场景二

  • 场景二:表单没有配置:model属性和prop属性
    在这里插入图片描述
    注意:要想resetFields()方法生效一定要配置这两项

场景三

  • 场景三:在还没有显示对话框之前就调用resetFields()方法导致不起作用
    解决方法 :通过延迟调用resetFields()方法,代码如下
    this.$nextTick(() => {this.$refs['form'].resetFields();
    });
    

参考文章

  • this.$refs[‘form‘].resetFields()方法重置表单无效的坑
  • vue.nextTick()方法的使用详解(简单明了)
http://www.lryc.cn/news/10889.html

相关文章:

  • 如何保证数据库和缓存双写一致性?
  • Hinge Loss 和 Zero-One Loss
  • Linux下zabbix_proxy实施部署
  • Rust之错误处理(二):带结果信息的可恢复错误
  • [ vulhub漏洞复现篇 ] Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)
  • 如何将数据库结构导入到word
  • FreeRTOS内存管理 | FreeRTOS十五
  • 【数字电路】数字电路的学习核心
  • day45【代码随想录】动态规划之完全平方数、单词拆分、打家劫舍、打家劫舍 II
  • java程序,springboot程序 找不到主类,找不到符号解决思路
  • AntD-tree组件使用详析
  • spring的事务控制
  • 4.如何靠IT逆袭大学?
  • 提供网络可测试的接口【公共Webservice】
  • 【深入理解计算机系统】库打桩 - 阅读笔记
  • RocketMQ高性能原理分析
  • 前端面试当中CDN会问啥------CDN详细教程来啦
  • 刷题记录:牛客NC19429红球进黑洞 区间拆位异或+区间求和
  • 信息数智化招采系统源码——信息数智化招采系统
  • 20230217使AIO-3399J开发板上跑通Android11系统
  • Java 基础面试题——面向对象
  • PDF文件替换内容(电子签章),依赖免费pdfbox
  • nvm 控制 node版本
  • javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题
  • IP路由基础
  • 12.centos7部署sonarqube9.6
  • 大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的
  • MySQL的日志详解
  • 输出该股票所有收盘比开盘上涨3%以上的日期
  • 数值卡,让数据可视化玩出新花样丨三叠云