登录后<redirect>

时间:2019-05-20 14:14:40

标签: reactjs react-router-dom

我正在托盘上使用从react-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 个答案:

答案 0 :(得分:1)

componentDidMount的目的不是返回React元素。如果要在此处重定向用户,则必须programmatically

答案 1 :(得分:0)

您必须记住的一件事是,重定向应该是渲染方法中返回的JSX的一部分。 您必须在组件中创建一个render方法。如果要在重定向之前检查某些内容,也可以有条件地返回。看起来像这样:

render () {
    return (
        <div>
            {(condition) && <Redirect />}
        </div>)
相关问题