当前位置: 首页 > news >正文

【element plus】解决报错error:ResizeObserver loop limit exceeded的问题

当我们在使用element plus框架时,有时会遇到屏幕突然变暗,然后来一句莫名其妙的报错ResizeObserver loop limit exceeded,其实这是因为改变屏幕大小时el-table导致的报错
网上给出了几种解决方案,我试了其中两种可以实现

方案一:
在App.vue/main.js中加入以下这段代码即可解决:

// app.vue写在script里面  main.js写在app挂在完之后
const debounce = (fn, delay) => {let timerreturn (...args) => {if (timer) {clearTimeout(timer)}timer = setTimeout(() => {fn(...args)}, delay)}
}const _ResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends _ResizeObserver{constructor(callback) {callback = debounce(callback, 200);super(callback);}
}

方案二:
使用 v-if 延迟渲染
如果表格在初始加载时不需要立即显示所有数据,可以使用 v-if 来控制表格的渲染时机。例如,在数据加载完成后再渲染表格。

<el-table v-if="dataLoaded" :data="tableData" ref="myTable"><!-- columns -->
</el-table>data() {return {dataLoaded: false,tableData: []};
},
methods: {loadData() {// 模拟数据加载setTimeout(() => {this.tableData = [/* 数据 */];this.dataLoaded = true;}, 1000);}
}

方案三:
给表格的所有列设置固定宽度,此方案虽缺乏灵活性,但可以解决前面两种存在页面因尺寸变化而导致的闪切问题

const columns = [{title: '工号',colAttrs: { width: 160 }, // 重点dataIndex: 'employeeNumber',},{title: '姓名',colAttrs: { width: 160 }, // 重点dataIndex: 'userFullName',},{title: '职位',colAttrs: { width: 800 }, // 重点dataIndex: 'positionName',}
];

相关文章:

  • JBoltAI 赋能金融文档:基于 RAG 的基金招募说明书视觉增强方案
  • 致远oa部署
  • 在Vue3中,如何在父组件中使用v-model与子组件进行双向绑定?
  • 【计算机视觉】CV实战项目 - 基于YOLOv5与DeepSORT的智能交通监控系统:原理、实战与优化
  • 【C++】内存管理:内存划分、动态内存管理(new、delete用法)
  • 【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器截断与溢出
  • 关于边缘计算盒子的外部接口保护
  • Python torchvision.transforms 下常用图像处理方法
  • 计算机网络学习笔记
  • 【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
  • 高防IP是如何防护DDoS攻击和CC攻击的
  • C语言教程(十四):C 语言指针详解
  • 学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、ShaderPass渲染通道),案例一
  • C语言中封装JSON数组对象
  • 使用RabbitMQ实现判题功能
  • 从入门到精通【MySQL】视图与用户权限管理
  • 大屏资源汇总
  • DS B/B+/B*树及其应用(21)
  • 电子削铅笔刀顺序图详解:从UML设计到PlantUML实现
  • JMeter 安装及使用 [软件测试工具]
  • 2025年一季度上海市生产总值
  • 金光耀:被激活的复旦记忆
  • 旁白丨无罪后领到国家补偿,一位退休教师卸下了“包袱”
  • 观察|首个半马落幕:人形机器人场景应用才刚站上起点
  • 新任遂宁市委副书记王忠诚已任市政府党组书记
  • 国开行原副行长李吉平一审获刑14年