当前位置: 首页 > 面试题库 >

反应路由器 活动样式无法按我的要求使用根URL

柯曦
2023-03-14
问题内容

我在主菜单中使用了此NavLinks。问题是,当单击 “ / Test / car” 链接时, “ / Test”
链接也会应用样式。我相信这是因为 ’/ Test’ 应该是其他链接的根。所以这很有意义。

但是我希望 ’/ Test’* 链接在应用活动样式时也能像其他链接一样工作。因此,仅当单击 “主页” 链接时,才会应用样式 “ /
Test”
。我如何做到这一点(以reactjs的方式)?
*

<Route exact path="/TEST" component={Home}></Route>
<Route path="/TEST/car" component={Car}></Route>
<Route path="/TEST/van" component={Van}></Route>
<Route path="/TEST/train" component={Train}></Route>

<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} to="/TEST" onClick={this.closeMenuForMobile.bind(this)} >Home</NavLink>
<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} to="/TEST/car" onClick={this.closeMenuForMobile.bind(this)} >Car</NavLink>
<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} to="/TEST/van"  onClick={this.closeMenuForMobile.bind(this)} >Van</NavLink>
<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} to="/TEST/train" onClick={this.closeMenuForMobile.bind(this)}>Train</NavLink>

问题答案:

就像您的路径使用一样 exact

改变这个

<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} to="/TEST" onClick={this.closeMenuForMobile.bind(this)} >Home</NavLink>

对此

<NavLink activeStyle={{borderBottom: 'solid 3px #fff', paddingBottom: '1em'}} exact to="/TEST" onClick={this.closeMenuForMobile.bind(this)} >Home</NavLink>

来源:https :
//github.com/ReactTraining/react-router/blob/master/packages/react-router-
dom/docs/api/NavLink.md#exact-bool



 类似资料:
  • 我试图使用react router 4的URL来确定某个视图数据应该如何排序。 (导航图像) 所以每个导航链接都指向同一个页面,只是在最后更改参数。例如。 /home/:general /home/比基尼 /家居/内衣 等 这是可行的,但是activeClassName参数被应用于它们 有没有办法使导航链接仅将样式应用于具有精确链接的链接。 路由组件 一些导航链接的片段 我知道这正在发生,因为这是

  • 问题内容: 我需要react-router v2 +的帮助,例如,当路由更改时,我必须更改navbar的类,因为它将 尝试在navbar组件中使用,但它显示 希望你的帮助 问题答案: 您的组件(如您在问题中所描述的)可能不是路由组件,对吗?通过我的意思是你在使用一个被加载特定路由配置。 仅可通过此类访问,因此您需要将其传递给您。 让我们举个例子: 您的路由器配置: 路线部分:

  • 考虑以下事项: 我有一个应用模板,一个HeaderTemboard,和参数化的路由集与相同的处理程序(在应用模板)。我希望在没有找到东西的时候能够服务404路线。例如, /CA/SanFrancisco应该由区域查找和处理,而 /SanFranciscoz应该是404。 下面是我如何快速测试路线的。 问题是 /SanFranciscoz总是由区域页面处理,但我希望它是404。此外,如果我向第一个路

  • 我正在尝试React-路由器(v4),我有问题启动的Nav有一个的。如果我单击任何标记,则活动内容开始工作。然而,我希望首页在应用程序启动后立即激活,因为这是在路由加载的组件。有什么办法可以做到这一点吗? 这是我目前的代码:

  • 问题内容: 在安装组件之前进行授权检查的最佳实践是什么? 我使用react-router 1.x 这是我的路线 这是我的仪表板组件: 问题答案: 更新了 React Router v4的* 解决方案 * 反应路由器到v3 使用’onEnter’事件并在回调中检查用户是否被授权: