美文网首页
vue + element 树形表 懒加载 增加和删除时 刷新节

vue + element 树形表 懒加载 增加和删除时 刷新节

作者: jesse28 | 来源:发表于2021-02-16 07:23 被阅读0次

    引用文章链接:https://blog.csdn.net/weixin_39001363/article/details/101547148
    element 树形表在懒加载模式下官方没有提供实时局部刷新节点的方法
    在tree.js中找到懒加载关键的一个方法

    loadData(row, key, treeNode) {
          const { load } = this.table;
          const { lazyTreeNodeMap, treeData } = this.states;
          if (load && !treeData[key].loaded) {
            treeData[key].loading = true;
            load(row, treeNode, (data) => {
              if (!Array.isArray(data)) {
                throw new Error('[ElTable] data must be an array');
              }
              treeData[key].loading = false;
              treeData[key].loaded = true;
              treeData[key].expanded = true;
              if (data.length) {
                this.$set(lazyTreeNodeMap, key, data);
              }
              this.table.$emit('expand-change', row, true);
            });
          }
        }
    

    element 在每次更新节点时都调用了该方法,其中的load方法就是我们绑定的懒加载方法;最终发现它实现节点更新的关键在于:

    this.$set(lazyTreeNodeMap, key, data)
    lazyTreeNodeMap:this.$refs.table.store.states.lazyTreeNodeMap
    key:就是table-key
    data:节点的children数组
    

    于是写一个更新某个节点的子节点的方法:

    refreshRow(id){
          getList({ pid: id }).then(res => {
            if (res.success) {
              this.$set(this.$refs.table.store.states.lazyTreeNodeMap, id, res.data.dataList)
            }
          })
        }
    

    相关文章

      网友评论

          本文标题:vue + element 树形表 懒加载 增加和删除时 刷新节

          本文链接:https://www.haomeiwen.com/subject/wuqvxltx.html