react-router处理会话超时的最佳方法

时间:2017-08-08 09:39:04

标签: reactjs react-router

我正在研究一个反应SPA。每次此webApp通过Ajax从服务器请求数据时,服务器都会检查会话是否超时,如果是,则服务器将errorCode USER_NOT_LOGGED_IN返回给webApp。当webApp获得此errorCode时,它应该跳转到login页面。

我想在Http服务中实现这个逻辑,这样我就可以“写一次”。

httpsService:

axios(httpOptions).then(response => {
        let data = response.data
        if (data) {
          switch (data.code) {
            case 'OK':
              resolve(data.data)
              break

            case 'USER_NOT_LOGGED_IN':
            case 'CSRF_FAILED':
              // goto login
              break

            .......   

成分:

export default class Home extends Component {

  test = () => {
    post('test/', {
      cellphone: '100001',
      password: '6666666'
    }).then(data => {
      console.log('ok', data)
    }, error => {
      console.log('error', error)
    })
  }

  render() {
    return <div>
        Home
        <button onClick={this.test}>testHttp</button>
      </div>
  }
}

现在的问题是如何在httpsService中更改路由器状态。我应该在React中这样做吗?

0 个答案:

没有答案