elementUI的表单resetFields()方法无法清空

首先需要注意几个问题

1.我们需要为每个form-item加上prop属性,要不然无法清空(大部分的问题就是出在这)
2.resetFields()方法是重置表单,重置为初始值,而不是设置为空值
3.在resetFields()方法之前,如果修改了data里的表单默认值,那么重置以后就是你修改以后的值,而不是data里的值了

问题
1、页面有个新增和编辑共用的弹出框,在页面初始化后先点新增,后编辑,正常。
2、先编辑,后新增使用resetFields()表单数据竟然没有清空。

原因
1、当我们先新增再编辑,初始值是空的,调用resetFields()方法自然正常。
2、当我们先编辑再新增,会对表单赋值,初始值就是我们赋的值,调用resetFields()方法,表单里还有之前赋的值,并不是我们希望得到的清空表单。

解决

在编辑时,弹出框我们先让他初始化结束再赋值,使用$nextTick再执行赋值。

edit(row) {
    this.visible = true;
    this.$nextTick(()=>{
        //赋值
        this.editForm = {...row};
    })
}

在这里插入图片描述

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Element UI 中,resetFields 是用于重置表单方法。当我们使用 resetFields 方法时,它会将表单中的数据重置为初始值,同时清除验证状态和错误信息。然而,有时候 resetFields 方法可能会有一些无效的情况。 首先,我们需要确保 resetFields 方法是在正确的时机调用的。一般来说,我们应该在表单提交或者取消操作之后调用 resetFields 方法,以将表单重置为初始状态。如果 resetFields 方法在其他时机调用,可能会出现无效的情况。 其次,我们需要确保使用 resetFields 方法的组件是正确的。在 Element UI 中,resetFields 方法适用于 Form 组件和各种 Form Item 子组件。如果我们将 resetFields 方法应用于其他组件,可能会导致无效。 此外,还有一种情况是因为表单数据绑定的问题导致 resetFields 方法无效。在 Element UI 中,我们通常是通过 v-model 指令将表单数据与数据模型进行双向绑定。当我们使用 resetFields 方法重置表单时,必须确保数据模型也被重置为初始值,才能保证 resetFields 方法起作用。 最后,如果以上方法仍然无效,我们可以尝试重新加载页面或者重新实例化表单组件来解决问题。有时候,可能是由于一些不可预测的因素导致 resetFields 方法无效,重新加载或者重新实例化组件可以解除可能存在的错误状态。 综上所述,当 Element UI 的 resetFields 方法无效时,我们应该检查调用时机、适用组件、数据绑定和其他可能的因素,以找到并解决问题。如果问题仍然存在,可以尝试重新加载页面或者重新实例化组件来解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值