Cannot read properties of null (reading ‘getBoundingClientRect‘)

在前端开发过程中,添加了一个element-plus分页组件后突然出现这个报错:

但将刚添加的分页组件全部注释掉之后仍然报错,并且我从未使用过getBoundingClientRect这个方法

刷新界面后报错消失,在界面之间快速切换时再次报错,但稍等一会再切换界面就不会报错。

AI给出的解释是:

这个错误通常是因为在尝试访问一个尚未渲染或已经被销毁的 DOM 元素的属性导致的。

错误原因分析

  1. DOM 元素未正确挂载:可能在组件渲染完成前就尝试访问 DOM 元素

  2. 响应式数据变化时序问题watch 触发时相关 DOM 元素还未更新

  3. 组件销毁后的异步操作:防抖函数可能在组件销毁后仍然执行

尝试了诸多方法,包括但不限于添加onMounted 钩子来确保组件已经挂载到 DOM 上、使用v-if等待数据加载完后再渲染界面、使用nextTick(), 使用v-if 替代 v-show 确保组件完全销毁,强制等待100ms后渲染,均以失败告终

最终怀疑使用的element-plus版本与项目中某个部分不兼容,

将版本退回到了2.1.11后控制台出现一个warning(没仔细看),但并不影响运行

又将版本改到2.3.9,没有任何报错且稳定运行了

npm install element-plus@2.3.9

报错的版本是2.9.5