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>
下一篇: unity鼠标位置转换为世界坐标