element-ui中使用el-tree默认选中设置不成功?

问题描述

想要用el-tree做一个默认选中节点的东西,怎么实现。数据是从后台传的。
数据格式:
"id": "-1",

"text": "顶级节点",
"icon": null,
"state": {
    "opened": true
},
"checked": true,
"attributes": null,
"children": [
    {
        "id": "1ad7d4d1-0fef-b9ee-44cd-0165a289303e",
        "text": "节点1",
        "icon": null,
        "state": {
            "selected": false
        },
        "checked": false,
        "attributes": null,
        "children": [

我尝试着做过,不过现在有两个问题

1:目前只能先设定一个如下格式的data,用来接收数据

treeData: [
    {
      id: "",
      text: "",
      children: []
    }
  ],
  
  在
  axios.get(url).then(res => {
    this.treeData[0].id = res.data.id;
    this.treeData[0].text = res.data.text;**
    this.treeData[0].children = res.data.children;**
  })
  数据是这样接收的,希望做到的是能够
  this.treeData = res.data;
  但是这时候treeData数据格式为object,但el-tree接收的data为array格式。
  

2:想要做一个默认选中的功能,已经自己写了一个小算法,能够把数据中的seleced为true的节点,存在一个数组中。但是现在有一个问题,急需解决。我不能做到渲染出一个默认选中的tree。尝试了各种办法了。

跪求大佬们能提供些解决思路

第二个问题比第一个问题更急需解决

阅读 10.8k
1 个回答
  1. this.treeData = [{...res.data}]

但是不知道你res.data.children的数据格式是否符合树形结构,如果符合可以这样做

  1. 请参考文档: 默认展开或选中

设置默认展开的前提是设置了node-key
你要么没有设置node-key,要么提供的选中数组中的值与各个节点的node-key不一致

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题