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>