【vue】Vue

阅读: 评论:0

【vue】Vue

【vue】Vue

文章目录

        • 一、问题:
        • 二、分析:
        • 三、解决方案


一、问题:


二、分析:

该错误是因为vue-router的内部没有对编程式导航进行catch处理,所以在使用this.$router.push()this.$place 进行路由跳转时,往同一地址跳转时或者在跳转的 mounted/activated 等函数中再次向其他地址跳转时会出现报错。但是在3.1.0版本及更高版本中,页面在跳转路由控制台会报Uncaught (in promise)的问题,push和replace方法会返回一个promise, 你可能在控制台看到未捕获的异常。声明式导航之所以不会出现这种问题,是因为vue-router在内部已经做了相关处理。

三、解决方案

//解决编程式路由往同一地址跳转时会报错的情况
const originalPush = Router.prototype.push;
const originalReplace = place;
//push
Router.prototype.push = function push(location, onResolve, onReject) {if (onResolve || onReject) {return originalPush.call(this, location, onResolve, onReject);}return originalPush.call(this, location).catch(err => err);
};
//replace
place = function push(location, onResolve, onReject) {if (onResolve || onReject) {return originalReplace.call(this, location, onResolve, onReject);}return originalReplace.call(this, location).catch(err => err);
};

本文发布于:2024-01-29 04:11:32,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647269712602.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:vue   Vue
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23