解决vue因路由重复调用引发的报错

2022-05-23  本文已影响0人  上海_前端_求内推

在使用vue的过程中,重复点击菜单会报以下错误:

NavigationDuplicated: Avoided redundant navigation to current location:
解决办法:
这是vue在3.0以上的版本中的错误提示,不允许从当前路由跳转到当前路由(所以先检查一下哪里路由跳转重复了吧)

解决方案一
将自身的vue-router进行降级

yarn remove vue-router
yarn add vue-router@3.0

解决方案二
在router的(inedx.js)配置文件中添加如下代码

import Vue from 'vue'
import VueRouter from 'vue-router'

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

Vue.use(VueRouter)

若push并没有产生效果,可以换位repalce

import Vue from 'vue'
import VueRouter from 'vue-router'


const originalReplace = VueRouter.prototype.replace;
VueRouter.prototype.replace = function replace(location) {
  return originalReplace.call(this, location).catch(err => err);
};

Vue.use(VueRouter)
上一篇下一篇

猜你喜欢

热点阅读