单击登录页面中的按钮后,我想重定向到主页。但是当我单击地址栏中的按钮时,显示了主页的路径(它将重定向到主页)。但是,它没有t呈现与该路径相关的组件。它仍然显示带有主页地址的登录页面。因此,我必须刷新页面以呈现主页。这里出了什么问题?
在我的登录页面中...这是我用于按钮onClick的功能。
gotopage()
{
this.props.history.push('/home')
}
在我的索引js页面中。
import React from "react";
import { render } from "react-dom";
import {BrowserRouter as Router,Route,Redirect ,browserHistory} from "react-router-dom";
import { Firstpage } from "./Firstpage";
import { Login } from "./Login";
import { Home } from "./Home";
import createBrowserHistory from 'history/createBrowserHistory'
const history=createBrowserHistory();
class App extends React.Component {
render(){
return(
<Router history={browserHistory}>
<div>
<switch>
<Route path="/" component={Firstpage} exact> </Route>
<Route path="/home" component={Home}> </Route>
<Route path="/login" render={(props) => <Login {...props} history=
{history} } />}> </Route>
</switch>
</div>
</Router>
);
}
}
答案 0 :(得分:0)
我会建议一些事情。由于您使用的是React Router 4.x BrowserRouter没有历史记录道具,根据文档将其删除。 将您的代码更新为以下代码,看看它是否有效。
将switch更改为Switch,我看不到它是从react-router导入的。 在登录组件中使用react-router中的withRouter。
export default withRouter(Login)
按如下所示更新主路由配置。
<Router history={browserHistory}>
<Switch>
<Route path="/" component={Firstpage} exact> </Route>
<Route path="/home" component={Home}> </Route>
<Route path="/login" render={(props) => <Login {...props}/>}> </Route>
</Switch>
</Router>
在https://reacttraining.com/react-router/web/api/BrowserRouter处了解有关withRouter和BrowserRouter的更多信息。
有关更多详细信息,请参见以下帖子 https://medium.com/@AkyunaAkish/understanding-react-router-4-df73a66d96c4