具有活动样式的React路由器<NavLink>不能像我根URL所需的那样工作

Lak*_*wan 5 reactjs react-router-v4

我在主菜单中使用了这个NavLinks.问题是当点击'/ Test/car'链接时'/ Test'链接也在应用样式.我相信这是因为'/ Test'假设是其他链接的根源.所以它是有道理的.

但是我希望'/ Test'链接在应用活动样式时也像其他链接一样工作.因此,只有在单击"主页"链接时,才会将"/ Test"应用于样式.我如何完成(以反应方式)?

<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>
Run Code Online (Sandbox Code Playgroud)

Han*_*rus 12

就像你的路径一样 exact

改变这个

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

对此

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

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