今天在工作中用quasar框架遇到了树(q-tree)结构默认不全部展开子节点的问题。
代码中已经加入default-expand-all属性,但是就是不生效
<q-tree
class="col-12"
:nodes="treeNodes"
node-key="id"
label-key="searchName"
children-key="children"
tick-strategy="strict"
:ticked.sync="ticked"
@update:ticked="treeTicked"
default-expand-all
ref="tree"
/>
效果如下:
因为default-expand-all仅在组件第一次渲染时有效,当界面启动的时候,对数据进行了一次空值加载,当再次获取数据的时候是进行了二次渲染,所以渲染没有效果,节点没有展开。
所以要进行判断,判断数据是否有数据
需要在代码段中加入“v-if=‘treeNodes.length’”,判断数组的长度,等到有数据的时候进行渲染。这样就完事了
修改后的代码如下:
<q-tree
class="col-12"
:nodes="treeNodes"
v-if="treeNodes.length"
node-key="id"
label-key="searchName"
children-key="children"
tick-strategy="strict"
:ticked.sync="ticked"
@update:ticked="treeTicked"
default-expand-all
ref="tree"
/>
看一下页面展示的小效果吧:
第一次接触quasar框架,希望我这个问题可以帮到其他小伙伴,我们一起去探索。