表格设有默认展开的key 或者默认全部展开,折叠数据后,懒加载请求数据后,被折叠的数据还会自动展开,主要原因是表格数据更新了,但是默认展开的key不变,因此还是会自动展开,解决方案,在收起数据后,把当前的key从默认展开的key数组中移除
代码如下
<el-table
:data="tableData"
:key="tableKey"
row-key="id"
stripe
border
ref="addressTable"
style="width: 100%;"
:height="tableMaxHeight"
highlight-current-row
:current-row-key="currentRowKey"
:expand-row-keys="expandRowKeys"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
lazy
:load="childrenLoad"
@row-click="tableRowClick"
@expand-change="expandChange"
v-loading="loading"
>
expandChange (row, expandedRows) {
// 解决 折叠后 更新数据后 之前的收起项 默认又展开了
if (!expandedRows) {
let index = this.expandRowKeys.findIndex(el => el === row.id)
this.$nextTick(() => {
this.expandRowKeys.splice(index, 1)
})
}
},