我有一个Bootstrap Navbar工作正常。当我点击一个MenuItem时,它被设置为'active'。但是我想要的是,例如,当我进入主页>状态> NewStatus时,MenuItem Home将'激活'。我有我的引导导航栏使用此代码:在React-Router Bootstrap Navbar中设置为活动的父母链接
import React from 'react';
import MenuNavItem from './MenuNavItem.jsx'
export default class Menu extends React.Component {
constructor() {
super();
}
render() {
return (
<nav id="idNavMenu" class="navbar navbar-default" role="navigation">
{/*<a class="navbar-brand" href="/inicio"><img id="idFotoLogotipo" width="200px" src="./assets/images/cabecera_CE.jpg"/></a>*/}
<a class="navbar-brand" href="http://www.upct.es/"><span id="idTextoLogotipo">UPCT</span></a>
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Menú</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<MenuNavItem to='/alumno/inicio' index={true}>Inicio</MenuNavItem>
<MenuNavItem to='/alumno/nueva_incidencia'>Nueva Incidencia</MenuNavItem>
<MenuNavItem to='/alumno/mis_incidencias'>Mis Incidencias</MenuNavItem>
</ul>
<ul class="nav navbar-nav navbar-right">
<MenuNavItem to=''><span class="glyphicon glyphicon-off"></span> Salir</MenuNavItem>
</ul>
</div>
</nav>
);
}
}
和菜单式包装,它可以让设置为活动的菜单项点击:
import React from 'react'
import { Link, IndexLink, withRouter } from 'react-router'
export default class NavItem extends React.Component {
constructor() {
super();
}
render() {
const { router, index, to, children, ...props } = this.props;
let isActive = false;
if (router.isActive('./', true) && index) {
isActive = true
} else {
isActive = router.isActive(to)
}
const LinkComponent = index ? IndexLink : Link
return (
<li className={isActive ? 'active' : ''}>
<LinkComponent to={to} {...props}>{children}</LinkComponent>
</li>
);
}
}
NavItem = withRouter(NavItem);
在提到我的菜单,如果我在'/alumno/inicio/OTHER-ROUTE'
我想'Inicio'
将是'active'
。有人知道我该怎么做? (在我的NavBar中定义的父项MenuItem,在这种情况下,'Inicio'
- 路由 - 在这种情况下,'/alumno/inicio/OTHER-ROUTE'
其中'OTHER-ROUTE'
未在我的NavBar上定义 - 设置为活动)非常感谢。
谢谢你很多!这是工作!。当我有更多的时间时,我会尝试React-Bootstrap,因为你建议我。谢谢。 – JuMoGar
嗨,@mrinalmech。今天我收到这个错误。会是什么呢? (因为我不能粘贴在这里,所以我会将它发布到aswer中,太长了。谢谢。 – JuMoGar
嗨,@mrinalmech,你能读这个吗?http://stackoverflow.com/questions/43702957/how-could -i-solve-this-error-in-wrapper-of-navbar and try to help me,please? – JuMoGar