首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在使用Reach-Router的索引路由(或顶级路由)时,如何有条件地呈现组件?

当我在使用Reach-Router的索引路由(或顶级路由)时,如何有条件地呈现组件?
EN

Stack Overflow用户
提问于 2019-07-23 09:15:48
回答 2查看 676关注 0票数 0

如果url不是'/‘,我想对用户隐藏一个列表。此列表在顶层呈现,并包含许多链接。每当我导航回'/‘(索引路由)时,我想再次显示该列表。如何最有效地使用reach路由器来监听此位置并相应地更改状态,以便我可以隐藏/显示文章列表,并使用适当的路径隐藏/显示文章?

我尝试使用导航组件并尝试使用LocationProvider组件,但目前遇到了困难。下面的组件包装在路径为'/*‘的路由器中

代码语言:javascript
复制
<div>
  <Header />
  <div className='App'>
    <Slide
      direction='right'
      in={true}
      timeout={{
        appear: 0,
        enter: 400,
        exit: 0
      }}
      mountOnEnter
      unmountOnExit>
      <List>{getArticlesList()}</List>
    </Slide>
  </div>

  <Router>{getArticles()}</Router>
</div>
EN

回答 2

Stack Overflow用户

发布于 2019-07-23 09:35:10

使用react路由器时,您必须指定exact path

代码语言:javascript
复制
<Router>
    <Route exact path="/" component={List} />
</Router>

如果您想要在所有路径上显示内容,可以移除关键字exact并使用它,如下所示

代码语言:javascript
复制
<Router>
    <Route path="/" component={List} />
</Router>
票数 0
EN

Stack Overflow用户

发布于 2019-07-24 00:23:40

我通过使用useEffect钩子并通过props.location.pathname检查路径名来查看用户是否在路径'/'中,从而解决了这个问题。如果用户在顶部路径,则显示列表,如果不在,则隐藏列表。

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

https://stackoverflow.com/questions/57155472

复制
相关文章

相似问题

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