Реагировать - перенаправить на сторонний веб-сайт при отправке формы - PullRequest
0 голосов
/ 04 мая 2020

Я создаю форму входа и, когда она отправляется, я перенаправляю пользователя на сайт API, чтобы получить токен для доступа к данным.

Я пытаюсь сделать следующее:

if(this.state.isSubmitted) {
      return (
        <Router>
            <Redirect to={`${authEndpoint}? 
               client_id=${clientId}&redirect_uri=${redirectUri}&scope=${scopes.join(
               "%20")}&response_type=token&show_dialog=true`} />
        </Router>
      );
    }

Я получаю ошибку:

Uncaught Invariant Violation: <Router>: Children of <Router> must have a `path` or `default` prop, or be a `<Redirect>`. None found on element type `function Redirect(_ref)

Может кто-нибудь сказать мне, как это исправить, пожалуйста?

1 Ответ

1 голос
/ 04 мая 2020

Вам необходимо вложить ваш Redirect в компонент Route, как описано здесь

Но то, что вы пытаетесь достичь, неверно. Redirect - это компонент, используемый для маршрутизации реагирующих страниц внутри вашего проекта. Если вы хотите перенаправить пользователя на другой веб-сайт, используйте

 if(this.state.isSubmitted) {
    window.location.href = `${authEndpoint}?client_id=${clientId}&redirect_uri=${redirectUri}&scope=${scopes.join("%20")}&response_type=token&show_dialog=true`
 }

Если вы хотите перенаправить пользователя при посещении определенного c маршрута вашего сайта, используйте этот ответ

...