树形表格default-expand-all不生效的问题

问题描述:在vue中使用element的树形表格时,想要在页面初始化时就默认收起树形表格下拉,但是实际开发过程中在表格中设置default-expand-all 属性之后表格并不起效果,也就是页面初始化之后树形列表仍旧都是展开的,这就很不合理;如果数据较少的话还可以接受,但是如果数据很多,而用户迫切的想要通过顶级列表进行一系列操作,而给用户初始化看到的却是全部展开的列表,搁谁谁不烦!!!

原因:

default-expand-all属性确是是可以收起树形表格的,但是它起作用的时机为表格初始化时。但是在实际开发过程中表格的数据获取是异步的,也就是说,在数据来到表格之前,这个属性已经走完了它的流程,而当数据来到之后,就不在生效;即:只有初始化的时候是生效的,动态修改无效的。

解决办法:

每修改一次就让表格初始化一下

控制展开和折叠的按钮
<el-button type="primary" @click="isFold = !isFold"
    ><i class="el-icon-sort" style="transform: rotate(90deg)">i>
    展开/折叠
el-button>
表格中的配置

isFold:控制展开/折叠,
menuTable:用来二次初始化表格

    <el-table
      v-if="menuTable"
      :data="tableData"
      border
      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
      v-loading="loading"
      :default-expand-all="isFold"
    >
数据定义
  data() {
    return {
      isFold: true,
      menuTable: null,
    }
  }
方法
  watch: {
    isFold() {
      this.menuTable = false;
      this.$nextTick(() => {
        this.menuTable = true;
      });
    },
  },

你可能感兴趣的:(Element-UI,vue,vue.js,javascript,ecmascript)