elementui table子级tree懒加载bug

  1. 删除子级刷新列表子级依然显示

2.更新状态子级列表未刷新

3.编辑子级后刷新页面显示状态未变更

el-table 树表格load源码

首先,load可以执行,但是只剩一个子节点就有问题,那么就直接可以定位bug在load方法里:

文件路径:element-plus\packages\components\table\src\store\tree.ts

const loadData = (row: T, key: string, treeNode) => {

const { load } = instance.props as unknown as TableProps<T>

if (load && !treeData.valuekey.loaded) {

treeData.valuekey.loading = true

load(row, treeNode, (data) => {

if (!Array.isArray(data)) {

throw new TypeError('ElTable data must be an array')

}

treeData.valuekey.loading = false

treeData.valuekey.loaded = true

treeData.valuekey.expanded = true

// 就是这里,我们的子节点删完了data.length == 0,无法赋值

if (data.length) {

lazyTreeNodeMap.valuekey = data

}

instance.emit('expand-change', row, true)

})

}

}

增加方法手动刷新子级数据

// 刷新时

const refreshChild = (parentId) => {

if (rowMaps.get(parentId)) {

const { tree, treeNode, resolve } = rowMaps.get(parentId);

handleLoadTableChild(tree, treeNode, resolve);

} else {

sysTemp.value.getTableData();

}

};

// 先new一个map用于数据保存

const rowMaps = reactive(new Map());

load加载时存储父级id及数据信息

rowMaps.set(tree.id, { tree, treeNode, resolve });

相关推荐
子兮曰5 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰5 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万5 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝5 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋5 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁5 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95275 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大5 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师5 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学5 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端