欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决 ElementUI form表单在dialog中重置表单,无法正确重置的问题

程序员文章站 2022-04-04 12:54:44
...

问题描述:

在用ElementUI做动态表单时,数据的修改都是打开dialog(子组件)中进行操作的,但是在修改数据时,正常来说可以直接调用 this.$refs[str].resetFields() 直接清空,但是这里会出现一个问题:

**form表单的重置是以第一次打开的数据作为重置标准,如果先打开的是更新,那么重置之后以第一次更新的数据作为标准;
Dialog 中的内容是懒加载的,目前 edit (更新)方法的写法导致 Form 刚加载出来时值就已经是新的了,所以 resetFields 也只能回到新值**

解决方案

  1. 利用v-if的特性,进行form的销毁和重建,强行让每一次改操作拿到的数据为父组件传过来的初始值。
  <el-dialog title="编辑" :visible.sync="isshow" left v-if='isshow'>
2. 用 nextTick 处理一下form的数据`这里写代码片`
this.$nextTick(() => {
          this.form.user_id = "111";
          ...
       });


在elementUI官方github上也有讨论,地址:https://github.com/ElemeFE/element/issues/3217