React项目中Antd组件库 Tab选项卡 defaultActiveKey 不生效解决方案

一、业务场景:
最近在做React项目时,需要进行跳转页面后,直接进入某个选项卡中(默认显示第一个) 为了大家后面遇到和我一样的问题,给大家分享一下

二、解决思路:
将页面跳转时传过来的值,在Tab组件中 赋给 defaultActiveKey 这个API,但是并没有生效,后来使用 activeKey才解决

三、问题原因:
defaultActiveKey 只能设置默认值
activeKey 当前激活 tab 面板的 key

四、解决方案:
将 defaultActiveKey 换成 activeKey 即可

五、具体实现步骤:

  const [showTabIdx, setshowTabIdx] = useState('1')
  const getQuery = ()=>{
  //从地址栏获取参数
    let tabIdx  = props.location.query.tabIdx
    console.log(tabIdx)
    setshowTabIdx(tabIdx)
  }
  
  //换成动态的这个事件必须加,不加其他选项卡会切换不了
const onTabChanged = (activeKey)=>{
  setshowTabIdx(activeKey)
}

  useEffect(() => {
  //进入页面就调用
    getQuery()
  }, []);


   <Tabs  activeKey={showTabIdx} onChange={onTabChanged}>
      <TabPane tab="关于我的" key="1">
        <AboutUs/>
      </TabPane>
      <TabPane tab="消息" key="2">
        <MessageUs/>
      </TabPane>
      <TabPane tab="积分" key="3">
        <Integral/>
      </TabPane>
      <TabPane tab="权益" key="4">
        权益
      </TabPane>
    </Tabs>

六、效果展示:

在这里插入图片描述

今天的分享到此结束,欢迎小伙伴们一起交流

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值