element-plus的el-select报ResizeObserver loop completed with undelivered notifications错的一种可能原因及解决方案

posted @

报错场景: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);
        }
    }
}
转载请注明出处@https://www.cnblogs.com/noah227/p/17654605.html
posted @   彼时今日  阅读(8629)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 赶AI大潮:在VSCode中使用DeepSeek及近百种模型的极简方法
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
点击右上角即可分享
微信分享提示