history.push('/dashboard') 正在更新 URL 但没有导航到它?



在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>,
)

最新更新