elementUI 没有官方方法执行刷新,但可以曲线救国实现刷新。另外,并不需要获取 table 的引用。

  • 在 data 部分添加 map 属性
  • 在获取子节点的方法中,保存参数到 map,key 为行ID
  • 需要刷新子节点时,从 map 中获取参数,重新调用获取子节点的方法
<template>
<div>
   <el-table
    :data="tableData"
    row-key="id"
    border
    lazy
    :load="loadChildren"
    :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>
</div>
</template>
<script>
  export default {
    data() {
      return {
        tableData: [],
        maps: new Map(),
      }
    },
    methods: {
      ...省略其它逻辑
      loadChildren(tree, treeNode, resolve) {
         this.maps.set(row.id, { row, node, resolve });
         ...省略加载子节点逻辑
      },
      reLoadChildren(id) {
        let parent = this.maps.get(id);
        if (parent) {
          this.loadChildren(parent.row, parent.node, parent.resolve);
        }
      },
    },
  }
</script>