原图

效果图

思路: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)'
            }
        }
    }
}

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐