首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >渲染路由条件渲染。React路由器(hashrouter)

渲染路由条件渲染。React路由器(hashrouter)
EN

Stack Overflow用户
提问于 2018-11-23 07:49:03
回答 1查看 378关注 0票数 0

我正在使用React Router的Hashrouter组件在React应用程序中呈现我的不同路由。为了避免重复代码,我创建了几个名为TopBar和Footer的组件,顾名思义,它在网站中呈现这两个元素。当我想为管理页面添加另一个路由时,我的问题就来了,我既不想有TopBar,也不想有页脚。由于路径与“/”匹配,因此显然显示了这两个组件以及AdminFrame组件。

我有几个变通的解决方案,但我想知道是否有任何简单和简单的解决方案来解决这个问题,而不改变这个结构中的任何路线:

代码语言:javascript
代码运行次数:0
运行
复制
<HashRouter>
  <div>
    <Route path="/" render={()=> (
      <TopBar/>
    )} />
    <Route exact path="/" render={() => (
      <Home />
    )} />
    <Route exact path="/contacto" render={() => (
      <Contact />
    )} />
    <Route path="/" render={()=> (
      <Footer/>
    )} />
    <Route path="/admin" render={()=> (
      <AdminFrame/>
    )} />
  </div>
</HashRouter>

感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 07:59:45

如果顶栏和页脚只显示在主页上,您可以考虑将Topbar和页脚放在主页组件中的某个位置。如果你仍然需要顶栏和页脚,我会使用一个开关来更好地组织路由:

代码语言:javascript
代码运行次数:0
运行
复制
<HashRouter>
  <div>
    <Route exact path="/" render={()=> (
      <TopBar/>
    )} />
    <Route exact path="/" render={()=> (
      <Footer/>
    )} />
    <Switch>
        <Route path="/contacto" render={() => (
          <Contact />
        )} />
        <Route path="/admin" render={()=> (
          <AdminFrame/>
        )} />
        <Route path="/" render={() => (
          <Home />
        )} />
    </Switch>
  </div>
</HashRouter>

交换机仅呈现第一个匹配的路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53439184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档