elementPlus 表单组件重置表单方法无法重置表单

项目场景:

最近在写一个vue3项目,因为开发习惯喜欢把新增编辑模块封装成单独组件。

问题描述

本来也没啥问题的,但是有个表单赋值回显时需要往组装数据,结果就正好发现了这个奇怪的bug,表单对象里某个数组属性第二次打开莫名其妙多一条数据。正常赋值不会暴露这个问题,因为我每次打开表单往数组属性里push对象才暴露出来。

原因分析:

反复看了自己写的代码,看上去没啥问题,每次关闭表单时手动清楚了表单数据又用到element提供的清空表单方法,最后只能打断点一点点排除,发现数据到element提供的清空表单方法调用后又回到赋值时的状态。

解决方案:

问题找到了,原来是resetFields重置的数据是以el-form初次渲染时绑定的model为准,当你第一次打开弹窗时el-form才渲染,而此时已经赋值formData了,所以每次resetFields的数据就是第一次赋值formData的数据。所以你得在打开弹窗后在nextTick里赋值,所以需要在赋值之前增加nextTick;

const editRow = (row: hostelObj) => {
  nextTick(() => {
    ....
  });
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值