You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue应用中Grafana日志持续出现ResizeObserver未投递通知循环错误

解决Grafana日志中ResizeObserver loop completed with undelivered notifications错误

我在Grafana日志中反复遇到Error: ResizeObserver loop completed with undelivered notifications.错误,但浏览器控制台无法直接捕获该报错,仅Grafana日志会记录。此前尝试了多种方法均未解决问题:

  • 为输入框添加data-lpignore="true"和autocomplete="off"属性
  • 测试有无LastPass扩展的场景,确认问题与该扩展无关
  • 应用CSS隐藏webpack-dev-server客户端覆盖层iframe:iframe#webpack-dev-server-client-overlay{display:none!important;},无效果
  • 手动管理ResizeObserver生命周期,在组件卸载时断开连接并清理监听条目,无论监听单个输入框ref还是批量元素都无效,代码示例如下:
let resizeObserverEntries = []
    
const observer = new ResizeObserver((entries)=>{
 resizeObserverEntries = entries
})

if(inputRef.current) observer.observe(inputRef.current)

return () => {
  resizeObserverEntries.forEach((entry)=>entry.target.remove())
  observer.disconnect()
}
  • 因表单基于Element-Plus构建,查其更新记录存在resize相关问题,遂将库更新至最新版本,问题仍未解决

实际有效的解决办法

  1. 延迟处理ResizeObserver回调
    将回调逻辑包裹进requestAnimationFrame中,可避免循环未完成的通知问题:
const observer = new ResizeObserver((entries) => {
  requestAnimationFrame(() => {
    // 放置原本的回调处理逻辑
    resizeObserverEntries = entries;
  });
});
  1. 全局过滤该错误
    若暂时无法从根源修复,可通过全局错误监听过滤该特定报错,避免污染Grafana日志:
window.addEventListener('error', (e) => {
  if (e.message.includes('ResizeObserver loop completed with undelivered notifications')) {
    e.stopImmediatePropagation();
    e.preventDefault();
  }
});

注意:此方法仅为抑制错误上报,并非从根本上修复问题,适合临时规避日志干扰的场景。

  1. 升级Grafana版本
    如果是基于Grafana开发或嵌入Grafana组件,尝试将Grafana升级至最新稳定版,官方可能已修复内部ResizeObserver的使用问题。

内容的提问来源于stack exchange,提问作者Nichita Rusnac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:22:22