react ResizeObserver loop completed with undelivered notifications报错信息
时间: 2023-11-14 12:09:13 浏览: 87
这个报错信息通常是由于使用了 ResizeObserver 监听元素大小变化时,出现了循环调用的情况。这种情况下,浏览器会限制回调函数的执行次数,以避免性能问题。
解决方法是在回调函数中避免对被观察元素的大小进行修改,或者使用 debounce 或 throttle 函数来限制回调函数的执行频率。
如果你使用的是 React,可以考虑使用 react-resize-detector 库来代替 ResizeObserver。
相关问题
ResizeObserver loop completed with undelivered notifications
在React中,ResizeObserver是一个钩子,它允许您使用ResizeObserver来测量元素的大小。当元素的大小发生变化时,ResizeObserver会触发回调函数来通知您。在某些情况下,如果ResizeObserver loop完成时存在未交付的通知,则可能会出现"ResizeObserver loop completed with undelivered notifications"的错误。这通常是由于浏览器处理ResizeObserver通知的方式引起的。
为了解决这个问题,您可以尝试以下几个方法:
1. 确保您正确地使用ResizeObserver钩子,并在正确的位置注册和注销ResizeObserver。
2. 检查是否有其他代码或库在同一元素上注册了ResizeObserver,可能会导致冲突和错误。
3. 尝试将ResizeObserver的触发频率限制在一个合理的范围内,以避免触发太多的通知。
4. 确保您的代码在ResizeObserver loop完成之前处理所有的通知,以避免出现未交付的通知。
选择器报错ResizeObserver loop completed with undelivered notifications
根据提供的引用[1],这个错误通常是由于使用了某些库或框架,这些库或框架使用了ResizeObserver API,但是在某些情况下,这个API会导致循环调用,从而导致报错。这个问题通常可以通过升级相关库或框架来解决,或者使用Polyfill来修复。
如果你使用的是React,可以尝试升级React版本到16.13.0或以上,这个版本修复了这个问题。如果你使用的是Angular,可以尝试升级到Angular 9或以上版本,这个版本也修复了这个问题。
如果升级不可行,你可以尝试使用ResizeObserver的Polyfill来修复这个问题。Polyfill是一种代码片段,可以在不支持某些API的浏览器中模拟这些API的行为。你可以在GitHub上找到ResizeObserver的Polyfill,将其添加到你的项目中即可。
另外,你也可以尝试使用其他的选择器库或框架,例如jQuery或Lodash等,这些库或框架可能不会使用ResizeObserver API,从而避免这个问题的出现。