有幸用过这个ant组件  一言难尽!! 了解到这个组件默认不透露父节点信息 所以处理是真的麻烦 ,我这个需求是选中子节点要把它的父节点展示出来!开始用了很多捷径都没成功,最后用循环加递归踏踏实实的去找到它的父节点

代码段:html

  <a-tree
              v-if="treeData.length"
              show-search
              :checkedKeys="checkedKeys"
              :treeData="treeData"
              checkable
              :selectable="false"
              v-model="selectedKeys"
              @select="onSelect"
              @check="onCheck"
              <template slot="name" slot-scope="{ name }">
                <span v-html="name.replace(new RegExp(searchValue, 'g'), '<span style=color:#f50>' + searchValue + '</span>')"></span>
              </template>
            </a-tree>

js数据源

 data() {
    return {
      checkedKeys: [],
      checkedList:[],
      selectedKeys: [],
      searchValue: '',
      treeData: [
            id:"0",
          name: '下管街道',
          key: '0',
          scopedSlots: { title: 'name' },
          checkable: false,
          children: [
              name: '金星社区',
              key: '0-0',
               id:"00",
              scopedSlots: { title: 'name' },
              checkable: false,
              children: [
                    id:"000",
                  name: '张三-网格员',
                  key: '0-0-0',
                  scopedSlots: { title: 'name' },
                    id:"001",
                  name: '李四-市容管理网格员',
                  key: '0-0-1',
                  scopedSlots: { title: 'name' },
                    id:"002",
                  name: '王五-网格员',
                  key: '0-0-2',
                  scopedSlots: { title: 'name' },
                    id:"003",
                  name: '赵四-环卫网格员',
                  key: '0-0-3',
                  scopedSlots: { title: 'name' },
              name: '和平社区',
              key: '0-1',
              id:"01",
              scopedSlots: { title: 'name' },
              checkable: false,
              children: [
                    id:"010",
                  name: '刘琴-网格员',
                  key: '0-1-0',
                  scopedSlots: { title: 'name' },
                    id:"011",
                  name: '王雪-市容管理网格员',
                  key: '0-1-1',
                  scopedSlots: { title: 'name' },
                    id:"012",
                  name: '李梅-环卫网格员',
                  key: '0-1-2',
                  scopedSlots: { title: 'name' },
      checkedKeys:[],
      searchStr: '',
//获取父节点
    onCheck(checkedKeys) {
        var tempArr = [];
        if(this.checkedKeys.length>0){
            console.log(this.checkedKeys[0].split("-"))
            for(let a=0;a<this.checkedKeys.length;a++){
                var tempA =  this.checkedKeys[a].split("-");
                var index = 0;
                var tempStr = "";
                var data = this.treeData[0];
                var id = 0;
                var temFuc = ()=>{
                    index++;
                    if(tempA.length-index>=0){
                        console.log(index)
                        if(tempStr){
                            tempStr = tempStr+"-"+data.name;
                        }else{
                            tempStr = data.name;
                        if(data.children){
                            data = data.children[tempA[index]];
                        }else{
                            id = data.id;     
                        temFuc();
                temFuc();
                tempArr.push({
                    text:tempStr,
                    keys:this.checkedKeys[a],
                    id:id
            this.checkedList = tempArr;
       console.log(this.checkedKeys)

可以拿到以下俩组数据:

请根据你的实际数据结构和需求调整此代码。如果你的树形数据没有包含父节点的引用,你可能需要先处理原始数据以构建这种关系。:确保每个节点数据中包含对其父节点的引用。例如,你可以在每个节点对象中添加一个。组件中,当选择子节点时获取父节点的 ID,你需要利用。的数据以树形结构存储,每个节点都有一个唯一的。事件回调中,你可以根据选中的节点的。组件提供的数据和事件回调。在 Ant Design 的。)和一个指向其父节点的引用。查找其对应的父节点 ID。 在antd对Treeselect组件的渲染中,onChange事件是无法获取元素的值的,官方解释是处于对性能的考虑,没有对元素进行关联。 文档末尾也给出了如何获取元素值的方法,解题思路是:根据treeData的数据结构利用递归回溯去查找父节点的值 忠于文档~ import React from "react"; import { TreeSelect } from "antd"; import { Post } from "../../api/index"; const valueMap = {} a-tree-select和a-select组件使用方式差不多,采用 labelInValue,此时绑定的内容包含label和value <a-tree-select :label-in-value="true" style="width: 3rem" v-model="type" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :tree-data="typeTreeList" 前言:写项目的时候,后台返回了个树形结构的数据,要求前端保存的时候,传给后台选取的子节点和父节点信息;1.因为后台返回的数据比较多,渲染之后用户不太容易选择,因此就用了Ant Design的模糊搜索的方法;2.Ant Design 的树选择,只提供了获取选取当前节点的信息,如何获取当前节点的父节点信息。结尾:比较难的部分就是最后一个如何获取父节点信息;3.如何渲染后台返回的树结构的数据。获取当前节点和父节点; v-model='businessSelectedRowKeys' @check="onBusinessSelectChange" :treeData='businessData' :checkedKeys="businessSelectedRowKeys" :autoExpandParent="true"