You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导航栏路由逻辑:非当前登录用户页按钮activeTab类赋值问题

错误原因

两种写法失效的核心问题:

  • 第一种写法里的!userInfo.username是对用户名变量做布尔取反,返回值只有true/false两种,最终拼接出的路径是/users/true或/users/false,根本匹配不到真实的用户个人页地址。
  • 第二种写法在模板字符串内直接写*属于无效语法,同时JS的全等判断===本身不支持通配符模糊匹配,无法覆盖所有/users/前缀的路径。
正确实现代码

先判断路径是否为用户个人页,再提取路径中的用户名和当前登录用户做比对,同时覆盖/exploreUsers路由的激活规则即可:

className={
  location.pathname === "/exploreUsers" ||
  (
    location.pathname.startsWith("/users/") &&
    // 提取路径中/users/后的用户名部分,和当前登录用户比对
    location.pathname.split("/users/")[1] !== userInfo.username
  )
    ? "activeTab"
    : null
}

注意:如果项目中存在/users/用户名/其他子页面这类嵌套路由,可以把用户名提取逻辑换成正则匹配,取/users/后第一段非斜杠内容做比对,避免嵌套路径误触发激活态。

该逻辑和你已有的个人中心按钮激活规则完全互斥,不会出现两个导航按钮同时激活的问题。

内容的提问来源于stack exchange,提问作者filroy-codes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:55:15