为什么React-router在调用browserHistory.push方法后不会立即重定向?

时间:2017-08-13 20:03:06

标签: javascript reactjs react-router

这是我的componentWillMount函数中的代码:

   if(expression) {
      let path = '/something;
      browserHistory.push(path);
    } 
    let tokens = CookiesWrapper.getCookie('tokens');
    if (!tokens) {
      browserHistory.push('/login');
    }

当我调试时,我看到了使用browserHistory.push方法的奇怪行为,它看起来代码是异步执行的。

说到第3行。代码继续执行第4行和第5行,它在调用push方法后不会立即重定向。有没有想过为什么会这样?

1 个答案:

答案 0 :(得分:2)

如果您不使用return,解析器将继续执行代码(在这种情况下,它将继续执行您的let声明和if声明)。

   if(expression) {
      let path = '/something';
      return browserHistory.push(path);
    } 
    let tokens = CookiesWrapper.getCookie('tokens');
    if (!tokens) {
      return browserHistory.push('/login');
    }