ant design vue树结构加入expandedKeys属性后点击不展开

我的树结构如下图所示

img


初始化expandedKeys写进去的值,树结构是可以展开的

img


img


当点击展开按钮后

img


img


expandedKeys发生变化,但是树结构没有展开,不知道什么原因造成的?

v-model:expandedKeys="expandedKeys"

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    问题的原因可能是你没有正确地更新expandedKeys属性。你可以尝试在每次点击展开按钮时,更新expandedKeys的值,并通过v-bind将更新后的值传递给树结构组件。

    首先,你需要在data中定义一个变量expandedKeys,用于保存展开节点的key值。在初始化时,将默认的展开节点的key值赋给expandedKeys

    <template>
      <div>
        <a-button @click="handleExpand">展开</a-button>
        <a-tree :expanded-keys="expandedKeys"></a-tree>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          expandedKeys: [] // 初始化为空数组
        };
      },
      methods: {
        handleExpand() {
          // 在这里更新expandedKeys的值
        }
      }
    };
    </script>
    

    然后,在handleExpand方法中,根据当前的展开状态来更新expandedKeys的值。你可以使用Vue的this.$set方法来更新expandedKeys,确保Vue能够正确追踪到变化。

    methods: {
      handleExpand() {
        if (this.expandedKeys.length > 0) {
          this.expandedKeys = []; // 如果已经展开了,则清空展开节点的key值
        } else {
          // 如果没有展开,则将要展开的节点的key值添加到expandedKeys中
          // 这里假设要展开的节点的key值为'1'
          this.$set(this.expandedKeys, this.expandedKeys.length, '1');
        }
      }
    }
    

    这样,每次点击展开按钮时,都会更新expandedKeys的值,从而触发树结构组件的重新渲染。

    希望这个解决方案能够帮到你。如果你还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^