ElementUI表格懒加载子级更新数据刷新不生效问题

问题:

在更新上级的时候没有问题,但是在更新子级表格数据没有更新!

方案:

把加载的子节点信息存起来,更新的时候重新拉取字节点数据!

javascript 复制代码
let nodeMap = ref<Map<string, any>>(new Map());

完整代码

javascript 复制代码
    let tableInfo = ref<TableInfo<any>>({
        data: [],
        total: 0
    });
    let nodeMap = ref<Map<string, any>>(new Map());
    const lazyLoadTreed = async (row  : any, treeNode  : any, resolve : (data: Zone[]) => void) => {
        if(!treeNode) {
            let res = await lazyLoadTree(query.value);
            if(res.code == 200) {
                tableInfo.value.data = res.data;
            }
        }else {
            let res = await lazyLoadTree({
                keyWord: '',
                page: true,
                keyId: row.id
            });
            if(res.code == 200) {
                nodeMap.value.set(row.id, { row , treeNode , resolve });
                resolve(res.data);
            } else {
                resolve([] as Zone[]);
            }
        }
    }

    async function refreshNode(parentId : string) {
        const nodeInfo = nodeMap.value.get(parentId);
        if (nodeInfo) {
            const {  row, treeNode , resolve } = nodeInfo;
            lazyLoadTreed(row , treeNode, resolve);
        }
    }


    function update() {
        // 调用
        refreshNode('你的父级id');
    }
相关推荐
月光刺眼3 小时前
用LangChain 打造第一个 Agent:LLM 大脑与 Tool 手脚的完整闭环
javascript·人工智能·全栈
星栈3 小时前
LiveView 的认证系统:从登录到权限,我一开始以为有 `current_user` 就算完事了
前端·前端框架·elixir
在因斯坦3 小时前
摸摸鱼之前端自己研究 Jenkins 自动化部署
前端
西西学代码3 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter
snpgroupcn4 小时前
SAP实施风险管控注意事项:四大风险域与防范策略
前端·数据库·人工智能
阿成学长_Cain4 小时前
Linux talk 命令详解:经典终端实时聊天工具,无需图形界面即可对话
linux·运维·前端
lichenyang4534 小时前
从零开始写 HarmonyOS Web 容器:先让 ArkWeb 加载本地 H5
前端
kyriewen5 小时前
一个看不见的撇号,让Claude Code追踪了中国开发者三个月
前端·ai编程·claude
莫生灬灬5 小时前
DY联系人聊天Web面板支持获取联系人/聊天记录/发送消息
前端·chrome·websocket·c#
郑州光合科技余经理5 小时前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php