react-router无法读取属性' push'未定义的

时间:2016-02-28 11:14:43

标签: javascript reactjs react-router

我通过REST api登录后使用react-router导航到某个页面。

这是我的代码示例,试过这个:

 [asc201516s_teachers] => Array
    (
        [teachers_name] => Array
            (
                [0] => asd asd 
                [1] => asd asd asd 
                [2] => asd asd asd asd 
            )

        [teachers_cnic] => Array
            (
                [0] => 32312-1212121-2
                [1] => 33434-3434343-4
                [2] => 34454-5454545-4
            )

        [teachers_gender] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 2
            )            

        [teachers_contact] => Array
            (
                [0] => 1234-5678910
                [1] => 2345-6789101
                [2] => 3456-7891011
            )

    )

这基于react-router教程。

export default {
  loginUser: (jwt, rememberMe) => {
  var savedJwt = localStorage.getItem('jwt');

  AppDispatcher.dispatch({
    actionType: 'LOGIN_USER',
    jwt: jwt
  });

  if (savedJwt !== jwt) {
    browserHistory.push('/');
    localStorage.setItem('jwt', jwt);
  }
},

然而,两者都不起作用。第一个抱怨"错误记录TypeError:无法读取属性' push'未定义",而第二个抱怨"错误登录TypeError:无法读取属性' context'未定义"。

任何人都可以帮我解决这个问题吗?被困在这里几个小时。谢谢!

2 个答案:

答案 0 :(得分:0)

调用this.context.router.push('/')无论出于何种原因都无效。但是,使用browserHistory.push('/')时,网址会发生变化。此时如果刷新页面,它应该更改页面。根据我到目前为止所读到的内容,我不知道使用react路由器从服务器加载另一个页面是最好的方法。

答案 1 :(得分:-3)

结果是browserHistory.push('/');工作正常。失败的原因是由于反应路由器库不正确。