Cannot read properties of null (reading ‘getBoundingClientRect‘)
在前端开发过程中,添加了一个element-plus分页组件后突然出现这个报错:
但将刚添加的分页组件全部注释掉之后仍然报错,并且我从未使用过getBoundingClientRect这个方法
刷新界面后报错消失,在界面之间快速切换时再次报错,但稍等一会再切换界面就不会报错。
AI给出的解释是:
这个错误通常是因为在尝试访问一个尚未渲染或已经被销毁的 DOM 元素的属性导致的。
错误原因分析
-
DOM 元素未正确挂载:可能在组件渲染完成前就尝试访问 DOM 元素
-
响应式数据变化时序问题:
watch
触发时相关 DOM 元素还未更新 -
组件销毁后的异步操作:防抖函数可能在组件销毁后仍然执行
尝试了诸多方法,包括但不限于添加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
上一篇: 几秒钟就充满电!科学
下一篇: 暂无数据