ant desigin vue之 tree(树形控件)中设置defaultExpandAll无效的问题

问题:在做后台管理系统的菜单管理列表时,用到ant-design-vue中的 a-tree 树形控件展示菜单列表,以及进行操作列表。需要在加载出列表时,同时展开所有的树节点。查看文档,https://www.antdv.com/components/tree-cn/

使用defaultExpandAll属性 ,但是一直不生效,template中的代码如下:


script 中的代码如下:

import { getAdminMenuListApi } from '@/api/admin'
export default {
  data() {
    return {
      adminMenuList: []
    };
  },
  methods: {
    getAdminMenuList() {
      getAdminMenuListApi().then(res => {
        this.adminMenuList = res.data;
      });
    }
  },
  mounted() {
    this.getAdminMenuList();
  }
};

页面显示

ant desigin vue之 tree(树形控件)中设置defaultExpandAll无效的问题_第1张图片

 原因:因为default-expand-all属性是用来设置默认值的,不会动态渲染,初始值adminMenuList的数据是调异步请求获取的,默认是空数组,在adminMenuList是空数组的时候组件已经渲染了,没有树结构节点所以default-expand-all属性看起来也没有发挥作用了。

解决:加v-if判断,数据请求回来之后再去渲染 a-tree 树形控件

修改之后的代码:


  
import { getAdminMenuListApi } from '@/api/admin'
export default {
  data() {
    return {
      adminMenuList: [],
      spinning: true
    };
  },
  methods: {
    getAdminMenuList() {
      getAdminMenuListApi().then(res => {
        this.adminMenuList = res.data;
        this.spinning = false;
      });
    }
  },
  mounted() {
    this.getAdminMenuList();
  }
};

数据返回之前先显示加载中状态,返回之后根据spinning的值再渲染 a-tree 组件,问题解决,如下图

ant desigin vue之 tree(树形控件)中设置defaultExpandAll无效的问题_第2张图片

你可能感兴趣的:(ant-design-vue,埋坑之路,ant,design,vue,a-tree,树形控件,expandAll)