vue 全局路由beforeEach执行判断是报错

在执行校验是否微信浏览器时,提示报错:

clipboard.png

路由截图:

clipboard.png

全局路由判断代码:

router.beforeEach((to,from,next)=>{

  // 设置title
  const title = to.meta && to.meta.title;
  if (title) {
    document.title = title;
  }
  // 校验微信浏览器
  if((_need && isWeiXin()) ||!_need){
    next();
  }else{
    next({ path: '/error', replace: true, query: { noGoBack: true }})
  }
})

有知道是什么原因,怎么解决的么?

阅读 4.1k
2 个回答

是不是 /error 的路由死循环了,没有判断去/error的时候直接next 释放掉呢

楼上正解,然后去进行了调整

router.beforeEach((to,from,next)=>{

  // 设置title
  const title = to.meta && to.meta.title;
  if (title) {
    document.title = title;
  }
  //next()
  if((_need && isWeiXin()) ||!_need){
    next()
  }else{
    ///error 会在进入前 又要进入beforeEach中,这样就会一直循环下去
    if(to.path==='/error'){ //跳出循环的关键
      next()
    }else{
      next({ path: '/error',replace:true, query: { noGoBack: true }})
    }
  }

})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题