使用this.$refs['formName'].resetFields()无法重置表单

当prop和formName的属性名不一样是就会出现这种情况,

如果下面的prop="SN"就会重置不了

<el-form-item label="SN" prop="sn">
    <el-input v-model="formName.sn" placeholder="请输入SN" />
</el-form-item>

 
新增和修改用同一个弹窗,修改的时候回显数据后,重置(resetFields)不起作用

是因为dom加载更新是异步的,应该等dom渲染完毕之后再把数据回显,如果在dom渲染完毕之前把数据回显,那么重置(resetFields)不起作用

解决方案:用this.$nextTick()确保渲染完毕后回显数据

    // 编辑
    edit_child(row) {
      this.visible.child = true
      this.$nextTick(() => {
        this.childForm = { ...row }
      });
    },

要重置的时候就可以直接写

    // 取消弹窗
    cancelDialog_child() {
      this.$refs['childForm'].resetFields();
      this.visible.child = false
    },

 

posted @ 2021-11-09 11:15  何以平天下  阅读(1110)  评论(0)    收藏  举报