本文介绍: eltablecolumn渲染报错,若 scope.row.field(field为任意字段值)不存在,对其直接执行 length、toString() 等方法报错,先判断字段是否存在。打开弹框关闭后,弹框中的 DOM 元素没有被销毁,可能会因为不该存在的 DOM 元素而报错(我的报错就是由此导致)。在 v-if 值为 false 时,如果操作v-if 控制的 DOM,可能会因为该 DOM 元素不存在而报错。这个弹框报错问题,困扰好几天,查阅资料,可能是如下几个问题

一、现象:vue3 + elementplus项目,本地启动时,页面所有操作都正常;部署到生产环境后,el-dialog、el-drawer弹框报错。

在这里插入图片描述

这个弹框报错问题,困扰好几天,查阅资料,可能是如下几个问题
我这个项目给弹框添加 destroy-on-close解决了。

二、解决方案

1. el-dialog 组件导致

默认弹框是关闭的,DOM中没有弹框中的内容。打开弹框再关闭后,弹框中的 DOM 元素没有被销毁,可能会因为不该存在的 DOM 元素而报错(我的报错就是由此导致)。

解决方案:给 el-dialog 组件增加 destroy-on-close 属性

2. v-if导致

v-if 值为 false 时,如果操作了 v-if 控制的 DOM,可能会因为该 DOM 元素不存在而报错。

解决方案:vshow 替换 v-if

3. el-table 组件导致

el-tablecolumn渲染时报错,若 scope.row.field(field为任意字段值)不存在,对其直接执行 length、toString() 等方法而报错,先判断字段是否存在。

<el-table-column
	label="日期">
	<template v-slot="{ row }">
		{{ row &amp;&amp; row.time ? dayjs(row.time).format('YYYY-MM-DD') : ''}}
	</template>
</el-table-column>

原文地址:https://blog.csdn.net/csdn_cai_csdn/article/details/134608769

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_2913.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注