在reactjs中重定向到另一个页面不起作用

时间:2017-07-28 11:55:19

标签: reactjs redirect react-router

我正在尝试在我的reactjs项目的成功方案中重定向到另一个页面。我已经尝试过以下方法中解释的方法来做到这一点,但没有成功

this.props.router.push('/home');

this.context.router.push('/home');

this.history.pushState(null, 'home');

browserHistory.push('/home');

以及我在stackoverflow上找到的许多其他方法。我怎样才能成功做到这一点。

我的代码

function handleLoginResponse(response){

    switch (response.data.response){

        case "200":
            /**
             * in sccuess senario
             * redirect to the home page
             * set cookies for token and user id create session
             * */

            this.history.pushState(null, 'home');


            break;
        case "201":
            console.log("201");
            break;
        case "202":
            console.log("202");
            break;
        case "203":
            console.log("203");
            break;
        case "204":
            console.log("204");
            break;
        case "205":
            console.log("205");
            break;
        case "206":
            console.log("206");
            break;

    }

}

当我得到'200'的回复

时,我想重定向到另一个页面

谢谢。

1 个答案:

答案 0 :(得分:1)

用简单的方法可以使用Redirect

import { Redirect } from 'react-router'

创建状态然后将重定向连接到您的状态

示例:

import React, {Component} from 'react'
import { Redirect } from 'react-router'

export default class MyRedirect extends Component{
  constructor(){
    super()
    this.state = {
      redirect : false
    }
  }

  handleLoginResponse(){
    switch(response){
      case '200':
        this.setState({redirect: true})
      break;
    }
  }

  render(){
    return(
      {this.state.redirect && <Redirect to="yourpath" />}
    )
  }
}