antd_Tree_树的节点名称相同引发的未点击但被选中

在使用antd的Tree组件时,如果存在节点名称相同的状况,会出现未点击却选中的现象。文章详细描述了这个问题,并探讨了原始树结构的处理,特别是在2.1章节中讨论了如何加工树状数据显示,以及在2.2章节中遇到的onCheck事件处理父节点获取不到的问题和日志异常检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:树结构(node重复)

问题: 点击第一个,由于第二个名字相同,默认了两个都被选中

2: 原始树结构

 2.1:加工树状显示

setLeftTree(prev => {
                    if (!!info && !!Object.keys(info).length) {
                        return Object.entries(info).map(item => {
                            setExpandedKeys(prev => prev.concat(item[0]))
                            return {
                                title: item[0],
                                key: item[0],
                                children: item[1].map(i => {
                                    return {
                                        title: i,
                                        key: `${item[0]}chi&$ld${i}`,
                                    }
                                })
                            }
                        })
                    }
                    return []
                })
`${item[0]}chi&$ld${i}`使得不同的父节点下的名字相同的node不再一样,名字相同时就会拿到不同的节点

 2.2 onCheck(树的父节点有个拿不到)

const onCheck = (checkedKeys, e) => {
        const {halfCheckedKeys = [], checkedNodes = []} = e;

父节点和节点的数组(日志异常检测)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值