Reactjs 反应路由器不';如果组件具有MapStateTrops,则不应用NavLink活动类
我将Reactjs 反应路由器不';如果组件具有MapStateTrops,则不应用NavLink活动类,reactjs,react-redux,react-router,Reactjs,React Redux,React Router,我将react router与NavLink一起使用,因为我想为活动链接设置样式。这是菜单组件: import React from 'react'; import {NavLink} from 'react-router-dom'; export default class Menu extends React.Component{ render(){ return ( <nav> <NavLink className="na
react router
与NavLink
一起使用,因为我想为活动链接设置样式。这是菜单组件:
import React from 'react';
import {NavLink} from 'react-router-dom';
export default class Menu extends React.Component{
render(){
return (
<nav>
<NavLink className="nav-link" to="/"
activeClassName="active" exact={true}>Home</NavLink>
<NavLink className="nav-link to="/messages"
activeClassName="active" exact={true}>Messages</NavLink>
我有RouterApp
其中包括标题和页面组件:
....
const store = configureStore();
const AppRouter = ({store}) => (
<Provider store={store}>
<BrowserRouter>
<div>
<Header/>
<Switch>
<Route path="/" component={HomePage} exact={true} />
<Route path="/messages" component={MessagesPage} exact={true} />
<Route component={NotFoundPage} />
</Switch>
</div>
</BrowserRouter>
</Provider>
);
。。。。
const store=configureStore();
const AppRouter=({store})=>(
);
当我在浏览器中访问根路由时,主链接是一个类活动的
,组件是主页
如果我单击messages链接,则会呈现正确的组件-MessagesPage
,但home链接将保留在activeClass
中,而NavLink
中的消息则不在其中
如果我从Header
组件中删除mapStateToProps
,一切正常,但有了它,活动类不会应用于当前链接。将Header
组件作为默认路由
或使用路由器
HOC,组件导航链接将正常工作
<Route component={Header}/>
在Header comp中,我看到一个mapDispatchToProps
(未作为要连接的第二个参数传入)和一个MapStateTrops
函数,但正在传入。。。此外,所有的要求都是不必要的,但他们不会真的伤害。。。否则我看没问题…嗨,谢谢。我已经编辑了这个问题。只是被抄错了东西。
<Route component={Header}/>
export default withRouter(connect(mapStateToProps)(Header));