对不起,我的朋友们再次提出这个问题。我找到了解决该问题的方法。但是他们让我很困惑。我只想问一下优雅的方法。如您所了解的那样,我对React路由存在问题。让我解释。
我有一个名为Login
的按钮。单击按钮后,我做了一些逻辑工作,然后我想重定向到另一个视图。
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));
此结构运行良好。当我运行该应用程序时,登录页面会显示为第一状态。然后,我单击登录按钮,浏览器路径更改,但视图未呈现。如果我在登录后按浏览器刷新按钮。页面正确呈现。下次之后,直到我单击浏览器上的“刷新”按钮,一切正常为止。如果有人给我建议,我将不胜感激。