很抱歉朋友们又问这个问题了。我找到了解决这个问题的几个方法。但他们让我很困惑。我只是想问一个优雅的方法来做到这一点。正如你通过标题所理解的,我有一个关于反应路由的问题。让我解释。
我有一个按钮,其名称是Login
。单击按钮后,我执行了一些逻辑,然后我想重定向到另一个视图。
登录.jsx(只是历史部分)
import { withRouter } from "react-router";
.
.
.
.
const {history} = this.props;
if (history) history.push("/home");
.
.
.
.
export default (withRouter(Login));
App.js(有限部分)
import {withRouter} from 'react-router';
import {BrowserRouter as Router, Route, Switch} from "react-router-dom";
.
.
.
.
.
<div className={'container-fluid'}>
<Router>
<Route path="/login" exact component={Login}/>
{(showMe && !pathLogin) &&
<Header maximize={maximize}/>
}
{(showMe && !pathLogin) &&
<div className="row h-100">
<Sidebar maximize={maximize}/>
<Switch>
<Route path="/home" exact component={Home}/>
<Route path="/somepage" exact component={Somepage}/>
</Switch>
</div>
}
</Router>
</div>
.
.
.
.
export default (withRouter(App));
这个结构运行良好。当我运行应用程序时,登录页面显示在第一个状态。然后我单击登录按钮,浏览器路径发生变化但视图未呈现。如果我登录后按浏览器刷新按钮。页面渲染正确。下次之后,直到我单击浏览器上的刷新按钮,一切正常。如果有人给我建议,我将非常感激。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)