在 react router 3 中,文档包括一种在组件外部导航的方法。React 路由器 4 似乎已经放弃了对此的支持,导航外部组件的唯一方法是withRouter在组件上并将历史记录转发到您需要的任何地方。
我个人认为这是不切实际的,并且会导致代码更加混乱和冗长。因此,我的问题是:我是否错过了如何导航外部组件的替代方法?
只需将应用程序包装在扩展的 BrowserRouter 中:
import { Router, Route, Switch, Redirect, BrowserRouter } from 'react-router-dom';
import { createBrowserHistory } from 'history';
export const history = createBrowserHistory();
export default class YourBrowserRouter extends BrowserRouter {
render() {
return (
<Router history={history}>
<Switch>
<Route exact path="/login" component={Login} />
</Switch>
</Router >
)
}
}
Run Code Online (Sandbox Code Playgroud)
并且import { history }......history.push('/login')在反应组件之外你需要它的地方。对我来说,如果服务器响应 401,我想从我的 fetch 实用程序方法中重定向到登录页面。
| 归档时间: |
|
| 查看次数: |
5443 次 |
| 最近记录: |