react+antd中的tab页组件修改选中的tab样式

本文介绍了如何在React应用中结合Antd库动态修改Tab组件的选中样式。当进行增删操作时,需要同步更新activeKey并调整样式。删除时,无论顺序如何,都要更新样式;新增时,默认显示新数据的Tab标签。通过获取所有Tab节点,遍历并根据当前选中状态设置不同的样式类。在React中,作者发现直接添加样式类可能会因权重问题导致失败。

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

原图

效果图

思路:tab有增删,我这里是根据目录显示tab标签有选中同一个的,其实tab本身的切换也算选中同一个,

1、删除某个的时候,activeKey变得同时,样式也要跟着变,不管是有顺序的删除还是无序的删除

2、新增的时候,我这里的数据结构是都在最后一个加新数据,如果不是选中同一个,都是默认显示新增的数据的tab标签,也可以放最前面

3、我这里是根据组件的className来判断的,获取到所有的标签document.getElementsByClassName('ant-tabs-tab')节点

4、循环遍历的时候根据是否是当前选中的和没选中的来进行样式赋值,react中,我试了一下,目前就这种方式支持,我添加class,都不成功,可能是class的权重问题

//修改tab选中的颜色
setActiveColor = ()=>{
    let otherTab = document.getElementsByClassName('ant-tabs-tab');//包含了当前的active
    for (let j in otherTab){
        if (otherTab.hasOwnProperty(j)){
            let i = otherTab[j]
            if (i.className.includes('ant-tabs-tab-active')){//当前点击的
                i.style.backgroundColor = '#E03D3E';
                i.style.color = '#fff'
            }
             else {//其他默认的样式
                i.style.backgroundColor = '#fafafa';
                i.style.color = 'rgba(0, 0, 0, 0.65)'
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值