element-plus中树形表格组件中default-expand-all属性无效的解决方案

发布时间:2023-07-26浏览次数:448 次
在element-plus中使用Table树形表格组件时,会发现官方提供的default-expand-all属性是无效的,但是经过测试,会发现这个属性在初始化

在element-plus中使用Table树形表格组件时,会发现官方提供的default-expand-all属性是无效的,但是经过测试,会发现这个属性在初始化时有效,随后动态修改则无效。

那么得到思路,既然初始化时有效,那么就需要每次在动态修改default-expand-all属性时,让table重新初始化一次。我们给table组件上加上v-if='isShow'的标签。改完完成后,代码如下:

<!-- 操作按钮 -->
<el-button type="primary" @click="isExpandHandle">展开/收起</el-button>
<!-- el-table 组件 -->
<el-table :data="list" v-if="isShow" :default-expand-all="isExpand"></el-table>

同时,修改动态改变isExpand的方法isExpandHandle如下:

const isExpandHandle = () => {
    table.isShow = false;
    table.isExpand = !table.isExpand;
    nextTick(() => table.isShow = true)
}

即,每次改变isExpand值时,先将isShow设为false,然后待页面DOM更新完成后(nextTick)再将其修改为true。

以上实例代码使用了vue3的setup语法糖写法,如果您使用的是选项式api,稍加改造即可。

 

扫一扫,在手机上查看