项目场景:
数据中台搜索管理页面的新增、修改共用弹框,关闭时需清空
问题描述
“TypeError: Cannot read properties of undefined (reading ‘resetFields’)”
原因分析:
mouted加载table数据以后,隐藏的 Dialog 并没有编译渲染进 dom 里面。
所以当通过点击事件,Dialog 弹出的时候,$refs 并没有获取到 dom 元素导致 ‘resetFields’ of undefined
解决方案:
// 修改
editDocument(row) {
this.dialogVisible = true;
this.uploadTitle = "修改";
this.fileHidden = false;
this.uploadForm = JSON.parse(JSON.stringify(row));
},
// 关闭弹框
handleClose() {
this.dialogVisible = false;
// 1.表单初始话
this.uploadForm = {
name: "",
desc: "",
type: "",
userName: this.loginName,
};
// 2.添加判断
if (this.$refs.uploadForm !== undefined) {
this.$refs.uploadForm.resetFields();
}
},
// 新增确认和修改确认后调用 this.handleClose()
拓展:
this.$refs.form.resetFields(); //移除校验结果并重置字段值
this.$refs.form.clearValidate(); //移除校验结果
解决参考:https://blog.csdn.net/weixin_45393094/article/details/115584032