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

React如何隐藏所有前缀为/admin/路径页面的导航栏并简化冗余代码

现有代码问题说明

你目前写的串联&&判断本身存在逻辑错误:只有第一个window.location.pathname === '/admin/info'是等值比较,后续的非空字符串在布尔判断中恒为真,最终只有/admin/info路径会触发隐藏逻辑,其他你列的/admin/前缀路径都不会生效。


简化方案

方案1:匹配所有/admin/前缀路径(最符合你的需求)

直接用字符串startsWith方法判断前缀,不需要逐个枚举路径:

let HideHeader = window.location.pathname.startsWith('/admin/') ? null : <MyNav username={username} />

说明:判断条件加了末尾的斜杠,是为了避免误匹配/administrator这类前缀相似的路径,如果不需要这个限制可以改成startsWith('/admin')

方案2:仅匹配指定的/admin/子路径

如果后续你只需要部分/admin/下的路径隐藏导航,可以用数组枚举+includes判断的写法,比串联判断更简洁易维护:

// 统一管理需要隐藏导航的路径,新增/删除路径直接改数组即可
const hideNavPathList = ['/admin/info', '/admin/setting', '/admin/post', '/admin/messange']
let HideHeader = hideNavPathList.includes(window.location.pathname) ? null : <MyNav username={username} />

内容的提问来源于stack exchange,提问作者Thanh Hải

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:36:08