为antd树形table加上连接线

antd: ^5.18.3

业务说:这个table缩进层级看不太出来,加个连接线吧,吭哧吭哧翻文档发现没有官方支持,又不想去换其他组件,只能自己实现,先看一下最终效果(demo):
添加了连接线的树形table
接下来讲一下详细思路和实现,也是记录一下,可能不是最优,欢迎讨论

1. 前置准备

数据准备

随便编的一组数据,足够了

const treeData = [
    {
   
        uid: 25,
        name: "Node 1",
        age: 18,
        children: [
            {
   
                uid: 34,
                name: "Node 2",
                age: 20,
                children: [
                    {
   
                        uid: 12,
                        name: "Node 3",
                        age: 30,
                        children: [
                            {
   
                                uid: 26,
                                name: "Node 4",
                                age: 40,
                                children: []
                            }
                        ]
                    },
                    {
   
                        uid: 28,
                        age: 60,
                        name: "Node 5",
                        children: []
                    }
                ]
            },
            {
   
                uid: 27,
                age: 70,
                name: "Node 6",
                children: [
                    {
   
                        uid: 50,
                        age: 60,
                        name: "Node 15",
                        children: []
                    },
                    {
   
                        uid: 23,
                        age: 60,
                        name: "Node 16",
                        children: []
                    },
                    {
   
                        uid: 45,
                        age: 60,
                        name: "Node 17",
                        children: []
                    }
                ]
            }
        ]
    },
    {
   
        uid: 88,
        name: "Node 7",
        age: 18,
        children: [
            {
   
                uid: 90,
                name: "Node 8",
                age: 20,
                children: [
                    {
   
                        uid: 68,
                        name: "Node 9",
                        age: 30,
                        children: [
                            {
   
                                uid: 77,
                                name: "Node 10",
                                age: 40,
                                children: []
                            },
                            {
   
                                uid: 72,
                                age: 60,
                                name: "Node 13",
                                children: []
                            }
                        ]
                    },
                    {
   
                        uid: 73,
                        age: 60,
                        name: "Node 11",
                        children: []
                    }
                ]
            },
            {
   
                uid: 41,
                age: 70,
                name: "Node 12",
                children: []
            },
            {
   
                uid: 91,
                age: 60,
                name: "Node 14",
                children: []
            }
        ]
    }
];
export default treeData

树形数据结构操作

GPT真好用!

const findPathToNode = (dataTmp, id, path = []) => {
   
    for (let i = 0; i < dataTmp.length; i++) {
   
        if (dataTmp
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值