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

标签 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 方法后立即重定向我。知道为什么会这样吗?

最佳答案

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

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

关于javascript - 为什么 React-router 在调用 browserHistory.push 方法后不立即重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664424/

相关文章:

javascript - 如何在 redux 框架中使用 Action 和 Reducer 记录响应时间

javascript - NodeJS子进程偶尔停止

javascript - "Name () { }"和 "function Name() { }"之间有什么区别?

reactjs - 与WebSocket react useState导致数组无法正确更新

javascript - 如何使用来自 React Router 的路由参数发出 axios 请求,然后根据响应更新状态?

reactjs - 如何在 react 中隐藏登录和注册页面中的导航栏?

reactjs - React 0.14 - 使用react-router

javascript - 从具有一些非数值的数组计算最大值

javascript - 在 D3 Hierarchy Typescript 中,每个父子对具有相同的颜色

reactjs - react - componentWillReceiveProps 未运行