ElementUI form表单在dialog中使用,先点击编辑后再点击新增,表单重置无效

11 篇文章 0 订阅
10 篇文章 0 订阅
在使用ElementUI构建动态表单时遇到一个问题,即在Dialog中修改数据时,form表单的resetFields()方法无法正确重置到初始状态。原因在于Dialog的内容懒加载导致表单值在加载时就被更新。为解决此问题,可以在Dialog上添加v-if,确保表单先渲染再赋值,利用this.$nextTick()确保数据正确重置。这样可以避免表单重置无效的问题。
摘要由CSDN通过智能技术生成
在用ElementUI做动态表单时,数据的修改都是打开dialog(子组件)中进行操作的,但是在修改数据时,正常来说可以直接调用 this.$refs[str].resetFields() 直接清空,但是这里会出现一个问题:

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

解决办法就是在dialog上面加一个v-if;

<el-dialog  :title="title"  
            :close-on-press-escape="false" 
            :close-on-click-modal="false" 
            :visible.sync="payfeeVisible" 
            v-if='payfeeVisible'
            width="430px">

让表单先渲染出来,再对表单对象进行赋值(this.$nextTick)
这样就可以避免重置无效的效果;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值