element-plus的el-select报ResizeObserver loop completed with undelivered notifications错的一种可能原因及解决方案
posted @ 2023-08-24 17:04
报错场景:el-select
放在了table的td里,我做的是根据el-select切换的动态表格。切换时就会报此错误。
原因分析:分析发现,本场景在切换select时(实际上是在下拉选项框弹出的情况下),其所在单元格尺寸发生了变化(因为我没有定表格内单元格的尺寸)。
本质原因:选项弹出层依赖监听(window.ResizeObserver
)计算尺寸时出了问题。
解决方案:保证el-select所在单元格尺寸不发生变化即可。
或者可以:全局修补下,在main引入就好
const debounce = (callback: Function, delay: number) => {
let tid: any
return function () {
const ctx = self
tid && clearTimeout(tid);
tid = setTimeout(() => {
callback.apply(ctx, arguments)
}, delay)
}
}
export default () => {
const _ = (window as any).ResizeObserver;
(window as any).ResizeObserver = class ResizeObserver extends _ {
constructor(callback: any) {
callback = debounce(callback, 20)
super(callback);
}
}
}
- 闲话一提:出于某些原因,所在项目
package-lock.json
没有加入版本控制,导致克隆开发小版本发生了变化,进而带来了此项问题。所以,使用既有没有问题的package-lock.json
进行安装也是一种有效的解决方案。 - 相关参考
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 赶AI大潮:在VSCode中使用DeepSeek及近百种模型的极简方法
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地