element表单先编辑后新增resetFields()无效的坑

问题:

新增和编辑是同一个表单。

先新增后编辑,编辑弹框可以正常赋值;

先编辑后新增,新增弹框会初始化编辑的数据;

原因:

resetFields()方法是初始化值,并不是清空所有值。这个初始值是在form mounted生命周期被赋值上去的。所以,在form mounted之前,如果form表单赋值了,那么后面调用resetFields()都是无效的,因为form表单的初始值已经在mounted之前就被赋值了

解决方法:

在form mounted之后进行赋值操作即可,就是在编辑赋值之前调用nextTick方法。

const openLayer = ((type, data) => {
    openLayer.value = true
    if (type == 'add') {

    } else {
        nextTick(() => {
            form.name = data.name
        })
    }
})

你可能感兴趣的:(elementPlus,Vue,前端,javascript,html)