我想隐藏我的导航栏,当我在所有的页面有路径='/admin/…"但是它太长了。我该怎么洗呢,非常感谢。
let HideHeader = window.location.pathname === '/admin/info' && '/admin/setting' && '/admin/post' && '/admin/messange' ? null : <MyNav username={username} />
您可以使用简单的字符串方法,如startsWith()
,search()
,indexOf()
,includes()
https://www.w3schools.com/jsref/jsref_search.asp
https://www.w3schools.com/jsref/jsref_startswith.asp
https://www.w3schools.com/jsref/jsref_indexof.asp
startsWith
window.location.pathname.startsWith('/admin')
如果URL以/admin
开头,返回true
(window.location.pathname.search('/admin') !== -1)
如果URL包含/admin
,返回trueindexOf
(window.location.pathname.indexOf('/admin') !== -1)
如果URL包含/admin
,返回true可以使用indexOf:
let HideHeader = window.location.pathname.indexOf('/admin/') === 0 ? null : <MyNav username={username} />
它将测试以/admin/
尝试使用includes()
方法:
let HideHeader = window.location.pathname.includes('/admin/') ? null : <MyNav username={username} />
您可以使用匹配方法与正则表达式
let HideHeader = !window.location.pathname.match(//admin.*/g) && <MyNav username={username} />
最有效、语义正确且可理解的解决方案- startsWith:
window.location.pathname.startsWith('/admin');