开关外的导航栏

Posted

技术标签:

【中文标题】开关外的导航栏【英文标题】:NavBar outside Switch 【发布时间】:2020-05-04 18:00:26 【问题描述】:

App.js

 return (
<div>
  <NavBar />
  <Switch>
    <Route exact path='/' component=HomePage></Route>
    <Route path='/login' render=() => userCredentials.email ? <Redirect to='/' /> : <Form />></Route>
    <Route path='/register' render=() => userCredentials.email ? <Redirect to='/' /> : <Form />></Route>
    <Route path='/About' component=About></Route>
    <Route path='/Plot' component=Plot></Route>
    <Route path='/Profile' component=Profile></Route>
  </Switch>
</div> );

我需要 NavBar 出现在每个页面上,所以我将它放在 Switch 组件之外。但是,在执行此操作时,我从 withRouter 中丢失了 match 属性(match.url 或路径为“/”),这很遗憾,因为我也需要它。有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以同时匹配多个路由。你可以尝试这样的方法来匹配/ 没有确切的标志:

  <Switch>
    <Route path='/' component=NavBar /> // Will render on every route
    <Route exact path='/' component=HomePage></Route>
    <Route path='/login' render=() => userCredentials.email ? <Redirect to='/' /> : <Form />></Route>
    <Route path='/register' render=() => userCredentials.email ? <Redirect to='/' /> : <Form />></Route>
    <Route path='/About' component=About></Route>
    <Route path='/Plot' component=Plot></Route>
    <Route path='/Profile' component=Profile></Route>
  </Switch>

【讨论】:

以上是关于开关外的导航栏的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf 用开关条件替换导航栏

在SwiftUI导航栏中嵌入视图作为标题。

Android导航栏隐藏与浮现(二)

Android如何隐藏底部虚拟按键

将数据从标签栏开关直接传递到另一个视图控制器

Swift 动画和图形框架 Material