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

ElementUI form 在dialog中无法正确重置的解决方案

程序员文章站 2022-04-04 12:17:40
...

问题描述

在用ElementUI做动态表单(比如修改,先将查询出来的数据显示到页面上,然后再重置/修改)时,如果数据的修改是在打开dialog(子组件)中进行操作的,但是在修改数据时,正常来说可以直接调用 this.$refs[str].resetFields() 直接清空,但是这里会出现问题:

原因:

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

解决方案

利用v-if的特性,进行form的销毁和重建,强行让每一次改操作拿到的数据为父组件传过来的初始值。示例:

<el-form :inline="true"  ref="data_source"  v-if="dialogFormVisible"> 
</el-form>
相关标签: vue