react js中组件的条件路由

Posted

技术标签:

【中文标题】react js中组件的条件路由【英文标题】:Conditional routing of components in react js 【发布时间】:2020-09-15 23:38:40 【问题描述】:

我的代码如下所示。我希望以这样一种方式进行路由,即如果有约会路由处于活动状态,那么登录路由链接必须消失。如果登录组件正在路由,则约会路由链接必须消失。我被卡住了。我应该在这里输入什么条件。


            <Link to="/" style=height:'20px'><strong style=fontSize:'15px' ,color:'#0'>Home</strong></Link>
            <Link to="/contact" style=height:'20px'><strong style=fontSize:'15px'>Appointment</strong></Link>
            <Link to="/services" style=height:'20px'><strong style=fontSize:'15px'>Services</strong></Link>
            <Link to="/Login" style=height:'20px'><strong style=fontSize:'15px'>Login For Doctors</strong></Link>
            <Link to="/Appointment" style=height:'20px'><strong style=fontSize:'15px'>Todays Appointment</strong></Link>
        </Navigation>

【问题讨论】:

【参考方案1】:

您需要检查此文件中的 useLocation() 以了解您当前所在的路径,然后隐藏该路径。

Here 是一篇展示如何使用 useLocation() 的帖子。然后,您可以使用任何您想要隐藏该链接的方法。一个例子是:

  location !== '/contact'
      <Link to="/contact" style=height:'20px'><strong style=fontSize:'15px'>Appointment</strong></Link>
       : null

像这样将位置设置为当前路径后:

const location = useLocation().pathname

【讨论】:

【参考方案2】:

有很多方法可以在 react 中条件渲染组件或 jsx 元素。

你应该掌握的基本理解是:只要你返回 false 或 false,它就不会渲染。

您可以使用一些技术,请参阅this article 了解更多信息

    如果有条件 三元运算符 && 运算符(我个人最喜欢的) Switch 语句

【讨论】:

以上是关于react js中组件的条件路由的主要内容,如果未能解决你的问题,请参考以下文章

如何使用嵌套路由和私有路由组件在 react.js 中正确构建路由?

为啥 React 路由在组件中不起作用?

next js 中基于路由的条件组件渲染

react路由传值

React中使用路由进行父子组件的通信

React js在重定向到新路由后显示通知