【发布时间】:2020-06-11 22:31:00
【问题描述】:
我在使用 React Router v5 检测路由更改时遇到问题。 愿望是,当路由改变时,我想输出一个console.log。愿望是,当路由改变时,我想在App组件的console.log中输出那个路由(如图下面的代码),这样我就可以根据路由在 App.js 中设置一个变量。
软件包版本:
"dependencies": {
"react": "^16.12.0",
"react-router-dom": "^5.1.2",
}
这是我的路由器当前所在的 App.js 代码:
import React from "react";
import { BrowserRouter as Router, Route, Switch, NavLink } from "react-router-dom"
import "./App.css";
import AdminDashboard from "./pages/AdminDashboard"
import UserList from "./pages/UserList"
function App() {
const routeChange = () => {
console.log("foo!")
console.log(window.location.pathname)
}
return (
<>
<Router onChange={routeChange}>
<NavLink exact={true} className="nav-link" to="/AdminDashboard">Admin Dashboard</NavLink>
<NavLink exact={true} className="nav-link" to="/UserList">User List</NavLink>
<Switch>
<Route path="/AdminDashboard" component={AdminDashboard} exact />
<Route path="/UserList" component={UserList} exact />
</Switch>
</Router>
</>
);
}
export default App;
【问题讨论】:
-
你试过this吗?并删除
Router标签上的onChange事件,这是没有意义的。 -
props.history 未定义。
标签: reactjs react-router react-router-dom