还是报esizeObserver loop limit exceeded

动态 未结 0 78
小小草
小小草 LV1 2023年9月23日 23:40 发表
如果你已经使用了 debounce 函数来限制触发频率,但仍然出现了 "ResizeObserver loop limit exceeded" 错误,那么可能是因为在修改表格高度时,又触发了窗口大小的改变,从而形成了一个死循环。 为了避免这个问题,可以尝试使用 ResizeObserver 来监听表格高度的变化,而不是在窗口大小改变时计算表格高度。例如: ```javascript const handleResize = () => { windowHeight.value = $(window).height(); }; onMounted(() => { getTableData(); window.addEventListener('resize', handleResize); // 使用 ResizeObserver 监听表格高度的变化 const resizeObserver = new ResizeObserver(() => { contentH.value = tableRef.value.offsetHeight; }); resizeObserver.observe(tableRef.value); }); onUnmounted(() => { window.removeEventListener('resize', handleResize); }); ``` 在上面的代码中,我们使用 ResizeObserver 来监听表格高度的变化,并将其保存到 `contentH` 变量中。这样,在表格高度发生变化时,就不会再次触发窗口大小的改变,从而避免了死循环和 "ResizeObserver loop limit exceeded" 错误。 需要注意的是,由于 ResizeObserver 是一个比较新的 API,可能不支持所有的浏览器。如果需要兼容旧版浏览器,可以考虑使用其他的解决方案,例如 MutationObserver 或定时器等。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复