маршрутизация на целевую страницу с реактивным маршрутизатором не работает - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь перенаправить на целевую страницу после успешного входа в систему. 1. Сначала я попытался установить setState и перенаправить на метод reder. если результат верен при входе в систему

if (res) {
  this.setState({
    referrer: targetPage,
  });
}

и рендеринг как

const { referrer } = this.state;
    if (referrer) {
      return <Redirect to={referrer} />;
    }
  1. Я также пытался с withRouter HOC, как

    if (res) { this.props.history.push (targetPage); }

    экспорт по умолчанию с помощью роутера (со стилями (стилями) (LoginView));

  2. Также трид с

    this.props.history.goForward ();

все еще не могу найти решение

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Я получил решение из официальной документации
в функции signInUser установите состояние redirectToReferrer как true

signInUser = async () => {
    const { email, password } = this.state;

    const res = await this.props.loginUser(email, password);

    if (res === true) {
      this.setState(prevState => ({
        ...prevState,
        redirectToReferrer: true,
      }));
    }
  };


И в методе рендеринга .....

    const { redirectToReferrer } = this.state;
    let { from } = this.props.location.state || {
      from: { pathname: '/checkOutOrder' },
    };

    if (redirectToReferrer) return <Redirect to={from} />;


0 голосов
/ 02 ноября 2018

Попробуйте с this.props.history.push().

Я также столкнулся с той же ошибкой. Или вы можете использовать альтернативу:

window.location = "http://www.example.com";
...