Это мой роутер:
render() {
if (this.props.commonStore.appLoaded) {
return (
<div>
<Header />
<Switch>
<Route path="/services" component={MyServices} />
<Route path="/payments" component={Payments} />
<Route path="/order" component={Order} />
<Route path="/support" component={Support} />
<Route path="/send_ticket/:department_id" component={SendTicket} />
<Route path="/servicedetails" component={ServiceDetails} />
<Route path="/editor/:slug?" component={Editor} />
<Route path="/article/:id" component={Article} />
<Route path="/tickets/" component={Ticket} />
<Route path="/ticket/:id" component={InnerTicket} />
<PrivateRoute path="/settings" component={Settings} />
<Route path="/@:username" component={Profile} />
<Route path="/@:username/favorites" component={Profile} />
<Route path="/home" component={Home} />
</Switch>
<Footer />
</div>
);
}
return (
<div>
<Switch>
<Route path="/logout" component={LogOut} />
<Route path="/register" component={Register} />
<Route path="/login" component={Login} />
<Route path="/" component={RedirectLogin} />
</Switch>
</div>
);
}
все работает нормально, когда я использую этот метод для перенаправления любого маршрута для входа на страницу с компонентом RedirectLogin:
componentDidMount(){
this.props.history.replace('/login');
}
Но когда я использую тот же метод для перенаправления после входа в систему, он не будет перенаправлен, это мой обработчик входа:
handleSubmitForm = (e) => {
e.preventDefault();
this.props.authStore.login()
.then(() => this.props.history.replace('/home'));
};