【VUE3 疑难杂症】使用 elementplus 报错:ResizeObserver loop completed with undelivered notifications.

总览

1.问题根源
2.解决办法(总共有3个,为不同需求人群准备!)

一、问题根源

1.你是否在代码中使用了 el-table 组件?

这个问题的根源在于,elementplus 中,移除了默认宽度,所以你如果要使用 el-table,就必须添加 width=“xxx”
不添加?不添加就等着报错吧宝贝。

示例:
请看,在这个行中,我没有设置 width=“xxx”,

在这里插入图片描述

那么如果页面宽度发生变化,就会报错!
根本就不需要花里胡哨地修改什么 main.ts、app.vue,除非你不是 el-table 而是 el-dialog 之类引发的错误。

在这里插入图片描述

二、如何解决

方法1:设置固定的 width=“xxx”

就这么简单!
如果你不想设置 width,想要让它 auto,那么接下来我会讲另外一个骚操作,彻底 “解决” 这个问题。

vue3使用anrd表格报错"ResizeObserver loop completed with undelivered notifications"是由于ResizeObserver循环触发导致的。这个错误通常发生在表格组件中,当表格的大小发生变化时,ResizeObserver会不断触发回调函数,但是由于某些原因导致回调函数无法及时处理完毕,从而引发了这个错误。 解决这个问题的方法是使用防抖函数对ResizeObserver的回调函数进行包装。防抖函数可以延迟回调函数的执行,确保在一段时间内只执行一次。这样可以避免回调函数被频繁触发,从而解决了"ResizeObserver loop completed with undelivered notifications"错误。 以下是一个示例代码,演示了如何在vue3使用防抖函数解决这个问题: ```javascript // 在main.js中引入防抖函数 import { createApp } from 'vue' import App from './App.vue' const app = createApp(App) // 在app.vue使用防抖函数包装ResizeObserver的回调函数 const debounce = (fn, delay) => { let timer = null; return function () { let context = this; let args = arguments; clearTimeout(timer); timer = setTimeout(function () { fn.apply(context, args); }, delay); } } const _ResizeObserver = window.ResizeObserver; window.ResizeObserver = class ResizeObserver extends _ResizeObserver { constructor(callback) { callback = debounce(callback, 16); super(callback); } } app.mount('#app') ``` 通过以上代码,我们将ResizeObserver的回调函数使用防抖函数进行包装,延迟执行时间设置为16毫秒。这样就能够解决"ResizeObserver loop completed with undelivered notifications"错误。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MicroLindb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值