Не удается перенаправить на домашнюю страницу после входа в систему <Redirect> - PullRequest
0 голосов
/ 20 мая 2019

Я собираюсь использовать Redirect из response-router-dom 4.3.1.Вся логика, которую я применяю в mi app.js, и я получаю токен, и если он существует, я должен перенаправить пользователя на домашнюю страницу. Также я пытаюсь использовать историю, но я не работаю. Где находитсяпроблема?

app.js

import  { Redirect } from 'react-router-dom'

async componentDidMount() {

  try{
      const urlToken = new URL(window.location) 
      const authToken = urlToken.searchParams.get('auth_token')
      console.log('MATCH ',authToken)

      const tokenUser = await getTokenUser(authToken)
      console.log('tokenUser', tokenUser.status)

       if(tokenUser.status == 200) {
         this.setState({ toHome: true })
       }
     }catch(error){console.log('NOT')}
  }


render(){
if(this.state.toHome == true) {
      return <Redirect to='/dashboard' />
   }
}

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Цель componentDidMount - не вернуть элемент React. Если вы хотите перенаправить пользователя сюда, вам придется сделать это программно .

0 голосов
/ 20 мая 2019

Одна вещь, которую вы должны помнить, это то, что Redirect должен быть частью возвращаемого JSX в вашем методе рендеринга.Вы должны создать метод рендеринга в вашем компоненте.Вы также можете вернуться условно, если хотите что-то проверить перед перенаправлением.Это будет выглядеть примерно так:

render () {
    return (
        <div>
            {(condition) && <Redirect />}
        </div>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...