react+antd breadcrumb实现无限级面包屑

上一篇说到了无限级菜单,那么为了用户能准确的知道自己所在的文件层级位置,breadcrumb面包屑无疑是最好的解决办法,还是用上次的无限级菜单数据数组

 

this.testArray=[
    {id:'1',name:'建筑物',parentId:'-1'},
    {id:'2',name:'居民楼',parentId:'1'},
    {id:'3',name:'办公楼',parentId:'1'},
    {id:'4',name:'棚户',parentId:'1'},
    {id:'5',name:'三极目录',parentId:'4'},
    {id:'6',name:'电力设施',parentId:'-1'},
    {id:'7',name:'abc',parentId:'-1'},
    {id:'8',name:'cc',parentId:'7'},
]

此时可以结合点击事件触发的函数,获取当前点击的id值

onClick = e =>{
   let breadCrumb= []
   this.breadCrumb =this.breadCrumbReduce(e,breadCrumb) 
}
breadCrumbReduce = (id,arr) => {
    let array = this.textArray
    for (let i = 0; i < array.length; i++) {
        if (array[i].id === id) {
            arr.splice(0, 0, { name: array[i].name, parentId: array[i].parentId, id: array[i].id })
            if (array[i].parentId !== -1) {
                this.breadCrumbReduce(array[i].parentId, arr);
            }
            break;
        }
     }
     return arr;
}

此时一个无限级且会判定一级的面包屑就好了,面包屑结构体为

<Breadcrumb
    separator=">"
>
    {
        this.breadCrumb.map(
            (item)=>{
                return(
                    <Breadcrumb.Item key={item.id}>{item.name}</Breadcrumb.Item>
                )
            }
        )
     }
</Breadcrumb>

,最后上效果图

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值