Итак, у меня есть несколько файлов:
App.js
class App extends React.Component {
render() {
return (
<div >
<NavBar />
<Main />
</div>
);
}
}
export default App;
NavBar.js
class NavBar extends React.Component {
render() {
console.log(this.props.match)
return (
<div className="navbar-fixed">
<nav className="light-blue lighten-1">
<div className="nav-wrapper container">
<a className="brand-logo">Logo</a>
<ul id="nav-mobile" className="right hide-on-med-and-down">
<li><NavLink exact to="/characters" activeClassName="active">Characters</NavLink></li>
<li><NavLink exact to="/locations" activeClassName="active">Locations</NavLink></li>
</ul>
</div>
</nav>
</div>
);
}
}
export default withRouter(NavBar);
Main.js
class Main extends React.Component {
render() {
return (
<Switch>
<Route exact path="/characters" component={Characters}/>
<Route exact path="/locations" component={Locations}/>
</Switch>
);
}
}
export default Main;
Маршрутизация работает, хотя в файле NavBar у меня есть строка console.log(this.props.match)
, и я всегда получаю один и тот же путь, а activeClassName
даже неработа.
Всякий раз, когда я меняю местоположение, вывод всегда:
{
path: "/",
url: "/",
params: {…},
isExact: false
}
Единственное, что меняется, это ключ isExact
.
Я могу получить доступ к путитеперь с this.props.location
, хотя я должен сделать свой собственный логин для работы активных имен классов.
Я что-то здесь упускаю?Любая помощь будет высоко ценится.