【发布时间】:2018-06-15 14:36:59
【问题描述】:
我正在使用 React Router v4,并且在我的导航链接上,我想将 active className 启用到 NavLink 父元素,而不是 NavLink 本身。
有没有办法访问路径 (match),即使我不在 Switch 元素内?
或者我必须保持状态?因为我觉得它有点缺少路由器的想法。
这是我的示例,我想将active className 应用于li 元素而不是NavLink:
const {
HashRouter,
Switch,
Route,
Link,
NavLink,
} = ReactRouterDOM
const About = () => (
<article>
My name is Moshe and I'm learning React and React Router v4.
</article>
);
const Page = () => (
<Switch>
<Route exact path='/' render={() => <h1>Welcome!</h1>} />
<Route path='/about' component={About}/>
</Switch>
);
const Nav = () => (
<nav>
<ul>
<li><NavLink exact to="/">Home</NavLink></li>
<li><NavLink to="/about">About</NavLink></li>
</ul>
</nav>
);
class App extends React.Component {
render() {
return (
<div>
<Nav />
<Page />
</div>
);
}
}
ReactDOM.render((
<HashRouter>
<App />
</HashRouter>),
document.querySelector("#app"));
【问题讨论】:
-
v4版本请查看此链接stackoverflow.com/a/54573453/1074944
标签: reactjs react-router