在stackoverflow中有类似的问题。但是我找不到解决办法。
这是my index.js的一部分
ReactDOM.render(
<BrowserRouter>
<Provider store={store}>
<Login />
</Provider>
</BrowserRouter>,
document.getElementById('root')
);
这是Login组件的一部分
export default function BasicExample() {
return (
<Router>
<Switch>
<Route exact path="/dashboard" component={Dashboard}>
<Dashboard />
</Route>
........
</Switch>
</Router>
)
}
const Login = () => {
function handleLogin (e) {
.....
history.push("/dashboard");
.....
}
}
我不知道怎么了。我正在使用反应管理模板。有人能帮忙吗?
from the doc
使用HTML5历史API (pushState, replaceState和popstate事件)来保持你的UI与URL同步。
我没有看到你在哪里传递/声明历史对象登录时你可以这样写:
import { useHistory } from "react-router-dom";
let history = useHistory();
或者直接使用普通路由器
import { Router } from "react-router";
import { createBrowserHistory } from "history";
const history = createBrowserHistory();
ReactDOM.render(
<Router history={history}>
<Provider store={store}>
<Login />
</Provider>
</Router>,
)