elmentUl,Form 表单使用resetFields()之后数据消失不见

最近做一个需求是一个表单确认添加数据,然后列表显示
在这里插入图片描述
列表显示
在这里插入图片描述

表单点击添加push到列表数组里面然后使用
this.$refs.from.resetFields()方法清除表单里面的数据
然后发现列表里面的数据消失了....
我明明清除了表单里面的数据为什么列表数据没了???一眼看到resetFields这个方法有点不对劲
最后我用定时器包裹this.$refs.from.resetFields(),
发现确实是他的原因,定时器三秒之后清除,发现列表数据三秒后消失了,
简短思考三秒钟,原因就是vue是响应式的,表单数据是个响应式的对象,我使用resetFields清除表单数据之后,响应式连带着把列表里面push的数据也清除了

修改办法:只要使用深拷贝就行,重新搞个没有响应式的数据就好了,我的做法如下
  this.drillingInformationList.push({ ...this.drillingInformationData })

不仅仅是push一个对象,不管什么操作只要是响应式的对象,都有这个问题使用$set改变数组某个值也是这个情况
 this.$set(this.drillingInformationList, this.editIndex, { ...this.editDrillingInformationData })
 this.$refs.editDrillingInformation.resetFields()
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值