Перенаправление с методом replace () не работает - PullRequest
0 голосов
/ 11 ноября 2018

Это мой роутер:

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'));
  };
...