在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5/ react-router 的activeClassName 首頁重復(fù)匹配問題

react-router 的activeClassName 首頁重復(fù)匹配問題

要解決的問題:

clipboard.png
當(dāng)URL為非首頁時(shí)(path='/category'),首頁('path='/'')錯(cuò)誤的添加了activeClassName

首先路由模式是BrowserRouter

import { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom';
// ...
class RouteMap extends Component {
  render () {
    return (
      <Router>
        <Switch>
          <Route exact path='/' component={Home} />
          <Route path="/category" component={props => requireAuth(Category, props)} />
          <Route path="/about" component={About} />
          <Route path="/help" component={Help} />
          <Route path="/login" component={Login} />
          <Route component={NotFound} />
          <Redirect to="/" />
        </Switch>
      </Router>
    )
  }
}

export default RouteMap;

然后導(dǎo)航代碼如下:

import { withRouter, NavLink as Link } from 'react-router-dom';
// ...
<li><Link to="/" activeClassName="activeRoute">Home</Link></li>
<li><Link to="/category" activeClassName="activeRoute">category</Link></li>
<li><Link to="/about" activeClassName="activeRoute">about</Link></li>
<li><Link to="/help" activeClassName="activeRoute">Help</Link></li>
回答
編輯回答
咕嚕嚕

已解決:

import { withRouter, NavLink as Link } from 'react-router-dom';
// ...
<li><Link to="/" exact activeClassName="activeRoute">Home</Link></li>

<NavLink>
exact: bool
若為 true,只有當(dāng)訪問地址嚴(yán)格匹配時(shí)激活樣式才會(huì)應(yīng)用

strict: bool
若為 true,只有當(dāng)訪問地址后綴斜杠嚴(yán)格匹配(有或無)時(shí)激活樣式才會(huì)應(yīng)用

isActive: func
決定導(dǎo)航是否激活,或者在導(dǎo)航激活時(shí)候做點(diǎn)別的事情。不管怎樣,它不能決定對(duì)應(yīng)頁面是否可以渲染。

2017年8月10日 09:08