先直接说实现方法
<el-tree
ref="folderTreeRef"
:data="treeData"
:props="defaultProps"
node-key="id"
>
</el-tree>
const nodes = this.$refs.folderTreeRef.store._getAllNodes();
nodes.forEach(item=>{
item.expanded = false
})
展开就把expanded赋值为true就可以。这就是实现方法
下面解释一下以及需要注意的点:
这个方法在官网文档中没有,但是我们可以在调试的时候看到在store的原型上有这个方法
!而使用此方法前必须设置 node-key 属性。
原因看下面
在注册节点的时候,当key为空时,会直接return出去。这个key就是我们设置的node-key的值,
如果没有设置 node-key,这会导致 nodesMap 没有值,而我们的 _getAllNodes 方法就是通过遍历nodesMap来实现的,所以必须设置node-key。