記:vue-router報錯: Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location


記錄一下踩坑過程:

  本來項目好好的,拉完代碼,重新安裝了node_modules,其它的都沒動,然后使用路由 push 的時候就會報這個錯。完全不知道為什么

 

 然后找度娘,結果基本上千篇一律都是在 main.js 中添加如下代碼

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

還有就是說 vue-router版本有問題。我就不明白了,為什么以前都好好的,突然就會出錯呢。

然后我看了下 package.json 中的是 3.0.7 也不會有  vue-router 3.1及以上版本 push 報錯 的問題。

然后我再看 package-lock.json 中的 vue-router 的版本,結果是 3.4.3。難怪刪除 node_modules 再重新安裝也會報錯。

我丟。。。。。

最后再看 node_modules 里面 vue-router的版本也是 3.4.3 。。。

 

如果package-lock.json 和 package.json 中的版本都是一樣的,那就再mode_modules里vue-router的版本,一定要保持一致

 

解決辦法:

1. package-lock.json 的 vue-router 一項改成 如下的內容

"vue-router": {
    "version": "3.0.7",
    "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.0.7.tgz",
    "integrity": "sha1-s2yhB7SsuP9bxP+CRYQFnCP8uHs="
}

2. 重新安裝 vue-router 3.0.7的版本。如果實在要安裝vue-router 3.1及以上的新版本,在 main.js 中添加那段代碼即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM