路由守卫重复进入两次,报错(虽然页面还可以运行)
原因:vue-router路由版本更新产生的问题,导致路由跳转失败抛出该错误,但并不影响程序功能
Uncaught (in promise) Error: Redirected when going from "/productDetail?VNK=326acc75" to "/productTerms" via a navigation guard.
解决方法如下:
方案一
push跳转
const originalReplace = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
return originalReplace.call(this, location).catch(err => err)
}
Vue.use(VueRouter)
replace跳转
const originalReplace = VueRouter.prototype.replace
VueRouter.prototype.replace= function replace(location) {
return originalReplace.call(this, location).catch(err => err)
}
Vue.use(VueRouter)
注意:是写在路由的文件中,Vue.use(VueRouter)之上...
方案二
在package.json中对vue-router进行降低版本处理(比如3.0.7),更新node_modules包。由于权限问题,我还没试过,感兴趣的可以试试。