前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue-router 报错:Navigation cancelled from“/…“ to “/…“ with a new navigation.

vue-router 报错:Navigation cancelled from“/…“ to “/…“ with a new navigation.

作者头像
全栈程序员站长
发布2022-09-17 13:32:42
1.2K0
发布2022-09-17 13:32:42
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

vue-router@3.0版本及以上回调形式已经改成promise api的形式了,返回的是一个promise,如果路由地址跳转相同, 且没有捕获到错误,控制台始终会出现如图所示的警告 (注:3.0以下版本则不会出现以下警告!!!,因路由回调问题…) *

怎么解决呢?

方案一: 安装vue-router3.0以下版本:先卸载3.0以上版本然后再安装旧版本 npm install vue-router@2.8.0 -S

方案二: 针对于路由跳转相同的地址添加catch捕获一下异常:this.$router.push(’/location’).catch(err => { console.log(err) })

方案三: 在main.js下注册一个全局函数即可 (注:此处理方案只针对于vue-router 3.0以上版本哈!!!)

代码语言:javascript
复制
import Router from 'vue-router'

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) { 
   
  return originalPush.call(this, location).catch(err => err)
}

注:官方vue-router@3.0及以上新版本路由默认回调返回的都是promise,原先就版本的路由回调将废弃!!!!

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158903.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么解决呢?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档