vue router连续点击多次路由报错
在编程式导航跳转时候,连续点击多次会报NavigationDuplicated错误
this.$router.push({name: "search"});
出现这种错误原因是因为vue-router引入了promise,当我们使用this.$router.push时候需要多添加成功或失败的回调,否则就会报出以上的错误。
这时如果我们加入成功和失败的回调,就不会报错:
this.$router.push({ name: "search" },//成功回调() => {},//失败回调() => {});
虽然解决了报错,但如果有多个路由跳转,这样每次都要在后面加两个回调函数,显得很繁琐,所以我们可以用另一个办法,一次性解决问题。
我们在引入vue-router所在文件下重写push和replace方法:
import VueRouter from 'vue-router';
//保存原型对象的Push
let originPush = VueRouter.prototype.push
let originReplace = VueRouter.prototype.replace
//重写push方法
VueRouter.prototype.push = function (location, res, rej) {if (res && rej) {originPush.call(this, location, res, rej)}else {originPush.call(this, location, () => { }, () => { })}}
//重写replace方法
VueRouter.prototype.replace = function (location, res, rej) {if (res && rej) {originReplace.call(this, location, res, rej)}else {originReplace.call(this, location, () => { }, () => { })}}
至此我们成功解决问题,
vue router连续点击多次路由报错相关推荐
- vue router连续点击多次路由报错根本原因和解决方法
原因: vue-router 升级到 3.1.x 后,重复点击导航时,控制台出现报错 ,vue router ≥ v3.1 后 ,回调形式改成 promise api 了,返回的是 promise,如 ...
- 解决vue项目重复点击跳转路由报错以及路由重定向的问题
// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题 const originalPush = VueRouter.prototype.push VueRout ...
- 解决vue项目中重复点击导航路由报错
vue版本 "vue": "^2.6.11", 主要代码 //重复点击导航路由报错 const originalPush = VueRouter.prototy ...
- vue 解决重复点击导航路由报错 问题
// 解决重复点击导航路由报错 const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function pu ...
- vue重复路由报错解决
vue重复路由报错解决 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation- 分为三种解决方式 1.捕获异 ...
- vue重复访问同一路由报错
vue重复访问同一路由报错 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) // 重写router的push ...
- vue router返回到指定的路由
vue router返回到指定的路由 一.项目场景 二.问题描述 三.原因分析 四.解决方案 一.项目场景 项目场景:示例:A(商品详情)--B(商品购买页面)-C(支付成功页面)--D(订单页面) ...
- vue项目在vscode中编译eslint报错没显示红色波浪线提示
vue项目在vscode中编译eslint报错没显示红色波浪线提示. 如下图所示: 下图是预期效果: 不符合Eslint校验规则的代码位置都能展示出来,这样一目了然.能帮助我们迅速找到报错的位置. 然 ...
- .vue文件在webstorm中es6语法报错解决方法
.vue文件在webstorm中es6语法报错解决方法 参考文章: (1).vue文件在webstorm中es6语法报错解决方法 (2)https://www.cnblogs.com/yuqing6/ ...
最新文章
- shell test命令
- Chapter 11 替代变量
- 2010年度报告:是谁在编写Linux内核?
- 光流 | 基于对偶方法的变分光流改进算法
- javascript 本地对象和内置对象_JavaScript 的面向对象
- python基础之os.system函数执行命令行语句
- Broadcom获得65亿美元过度贷款以收购Brocade
- mac环境下配置gradle\maven
- ubuntu 将某个目录下的文件复制到_Ubuntu系统简单美化
- Google C++测试框架系列高级篇:第一章 更多关于断言的知识
- cad2012打开后闪退_win10系统安装cad2012一直闪退的解决方法
- Apm飞控学习笔记-AC_PosControl位置控制-Cxm
- 计算机常识 和 应用技巧
- 送给计算机老师的话,送给老师的话经典语录
- 达梦sql优化实践5
- 正则表达式(菜鸟教程)
- SAP中汇率固定配置和应用分析测试
- ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
- java初步语法(一)数据类型
- java 字符 加密_Java 字符串的加密与解密