javascript – react-routers索引路由始终处于活动状态

前端之家收集整理的这篇文章主要介绍了javascript – react-routers索引路由始终处于活动状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过使用react activeClassName属性来设置我的导航样式.到目前为止,它按预期工作,但有一个问题 – 我的第一个导航链接指向根路径(/).因此,即使在另一个URL上,它也会将该URL(例如/技能)和root注册为活动(因此2个菜单项的样式). @H_404_2@有一个简单的解决方法吗?我应该将Root路由定义为其他东西(例如/ home)吗?

@H_404_2@我的标题

import React,{ PropTypes } from 'react';
import { Link,IndexLink } from 'react-router';

const Header = () => {
    return (
        <div className="header">
            <div className="headerImage"></div>
            <ul className="headerNav">
                <li className="headerNavLink"><Link to="/" activeClassName="activeLink">introduction</Link></li>
                <li className="headerNavLink"><Link to="/skills" activeClassName="activeLink">skills</Link></li>
                <li className="headerNavLink"><Link to="/portfolio" activeClassName="activeLink">portfolio</Link></li>
            </ul>
        </div>
    );
};

export default Header;
@H_404_2@routes.js:

import React from 'react';
import { Route,IndexRoute } from 'react-router';
//Import app
import App from './components/App';
//Import pages
import IntroductionPage from './components/introduction/IntroductionPage';
import SkillsPage from './components/skills/SkillsPage';
import PortfolioPage from './components/portfolio/PortfolioPage';

//Define routes
export default (
    <Route path="/" component={App}>
        <IndexRoute component={IntroductionPage} />
        <Route path="skills" component={SkillsPage} />
        <Route path="portfolio" component={PortfolioPage} />
    </Route>
);
@H_404_2@因此,为了澄清,我希望我的家乡路线在另一条路线上不活跃.

@H_404_2@我究竟做错了什么?

@H_404_2@谢谢

解决方法

您可以使用 <IndexLink>或仅为其子路径处于活动状态时不突出显示链接设置onlyActiveOnIndex prop:
<li className="headerNavLink"><IndexLink to="/" activeClassName="activeLink">introduction</IndexLink></li>
@H_404_2@要么

<li className="headerNavLink"><Link to="/" activeClassName="activeLink" onlyActiveOnIndex>introduction</Link></li>

猜你在找的JavaScript相关文章