最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Vue-Router升級(jí)導(dǎo)致的Uncaught (in promise)問題

 更新時(shí)間:2020年08月07日 09:20:29   作者:只想做個(gè)好人啊  
這篇文章主要介紹了解決Vue-Router升級(jí)導(dǎo)致的Uncaught (in promise)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在升級(jí)了Vue-Router版本到到3.1.0及以上之后,頁面在跳轉(zhuǎn)路由控制臺(tái)會(huì)報(bào)Uncaught (in promise)的問題

這是什么原因呢?

看vue-router的版本更新日志

V3.1.0版本里面新增功能:push和replace方法會(huì)返回一個(gè)promise, 你可能在控制臺(tái)看到未捕獲的異常

解決方法一:在調(diào)用方法的時(shí)候用catch捕獲異常

this.$router.replace({ name: 'foo' }).catch(err => {
 console.log('all good')
}) 

方法二: 對(duì)Router原型鏈上的push、replace方法進(jìn)行重寫,這樣就不用每次調(diào)用方法都要加上catch。這個(gè)方法是vue-router的issues里面的一位大佬解決的

import Router from 'vue-router'
 
const originalPush = Router.prototype.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)
}

補(bǔ)充知識(shí):vue-router使用$router.push(),頁面掛起進(jìn)入debug模式,提示Uncaught (in promise) undefined

問題

vue-router使用$router.push()跳轉(zhuǎn)頁面時(shí),頁面掛起進(jìn)入debug模式,提示“Uncaught (in promise) undefined”,斷點(diǎn)進(jìn)入

function (err) {
   if (onAbort) {
    onAbort(err);
   }
   ……
}

此方法

分析()

Uncaught (in promise) undefined,未捕獲的promise,因?yàn)閼?yīng)用程序?qū)嶋H上沒有生成任何錯(cuò)誤。它只是一個(gè)導(dǎo)航($router.push),在beforeEnter鉤子中生成重定向(next('/ foo'))

Vue-router >= 3.1.0 版本在使用 push 和 replace 進(jìn)行跳轉(zhuǎn)時(shí)控制臺(tái)會(huì)拋出異常,其主要原因是 vue-router 3.1.0 版本以后 router.push('/path') 返回了 promise ,而當(dāng)路由跳轉(zhuǎn)異常時(shí)便會(huì)拋出錯(cuò)誤,此前版本沒有報(bào)錯(cuò)是因?yàn)?vue-router 根本沒有返回錯(cuò)誤信息,所以之前我們一直無法捕獲異常,而并非異常不存在。所以我們要做的就是在路由跑出異常時(shí)加上可以接收的回調(diào)就好了。

解決

1.使用route-link to bar代替$push

  <router-link to="/settlement_manage/account">
    <el-button :disabled="loading" size="mini" type="warning">
      查看詳情
    </el-button>
  </router-link>

2.對(duì)所有調(diào)用進(jìn)行push更新:

  this.$router.push({
    path: '/settlement_manage/account',
  }, () => {});

3.使用時(shí)進(jìn)行錯(cuò)誤攔截

router.push('/path').catch(err => {})

4.顯式指定onComplete和onAbort回調(diào)函數(shù)

this.$router.push({
    path: `/settlement_manage/account`
   },
   onComplete => {
    console.log('完成')
   },
   onAbort => {
    console.log('哦打斷了')
   })

5.引入router之前重寫push方法,在router.js里加

const originalPush = VueRouter.prototype.push
VueRouter.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)
}

ok!以上所有方法親測(cè)有效~

以上這篇解決Vue-Router升級(jí)導(dǎo)致的Uncaught (in promise)問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue報(bào)錯(cuò)"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法

    vue報(bào)錯(cuò)"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法

    這篇文章主要介紹了vue報(bào)錯(cuò)"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • vue+axios?methods方法return取不到值問題及解決

    vue+axios?methods方法return取不到值問題及解決

    這篇文章主要介紹了vue+axios?methods方法return取不到值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue的緩存方法示例詳解

    Vue的緩存方法示例詳解

    這篇文章主要給大家介紹了關(guān)于Vue緩存方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Vue 獲取數(shù)組鍵名的方法

    Vue 獲取數(shù)組鍵名的方法

    本篇文章主要介紹了Vue 獲取數(shù)組鍵名的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 從vue基礎(chǔ)開始創(chuàng)建一個(gè)簡(jiǎn)單的增刪改查的實(shí)例代碼(推薦)

    從vue基礎(chǔ)開始創(chuàng)建一個(gè)簡(jiǎn)單的增刪改查的實(shí)例代碼(推薦)

    這篇文章主要介紹了從vue基礎(chǔ)開始創(chuàng)建一個(gè)簡(jiǎn)單的增刪改查的實(shí)例代碼,需要的朋友參考下
    2018-02-02
  • vue調(diào)用攝像頭進(jìn)行拍照并能保存到本地的方法

    vue調(diào)用攝像頭進(jìn)行拍照并能保存到本地的方法

    本文主要介紹了vue調(diào)用攝像頭進(jìn)行拍照并能保存到本地的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 關(guān)于怎么在vue項(xiàng)目里寫react詳情

    關(guān)于怎么在vue項(xiàng)目里寫react詳情

    本篇文章是在vue項(xiàng)目里寫tsx的一篇介紹。其實(shí)vue里面寫jsx也挺有意思的,接下來小編九給大家詳細(xì)介紹吧,感興趣的小伙伴請(qǐng)參考下面的文章內(nèi)容
    2021-09-09
  • vue中返回結(jié)果是promise的處理方式

    vue中返回結(jié)果是promise的處理方式

    這篇文章主要介紹了vue中返回結(jié)果是promise的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue中使用swiper5方式

    vue中使用swiper5方式

    這篇文章主要介紹了vue中使用swiper5方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue通過tailwindcss實(shí)現(xiàn)class動(dòng)態(tài)綁定

    vue通過tailwindcss實(shí)現(xiàn)class動(dòng)態(tài)綁定

    這篇文章主要介紹了vue通過tailwindcss實(shí)現(xiàn)class動(dòng)態(tài)綁定,文中給大家介紹了一些常用類名語法記錄,對(duì)vue動(dòng)態(tài)綁定class相關(guān)知識(shí)感興趣的朋友一起看看吧
    2023-07-07

最新評(píng)論

武冈市| 三江| 东平县| 鸡东县| 封丘县| 乌鲁木齐县| 遂昌县| 安顺市| 岗巴县| 甘谷县| 大连市| 凤翔县| 宝鸡市| 泰兴市| 张家港市| 常德市| 镶黄旗| 砚山县| 乌拉特前旗| 临高县| 北安市| 营口市| 嘉兴市| 胶州市| 弋阳县| 金昌市| 建昌县| 九台市| 渭源县| 成都市| 广东省| 科尔| 金寨县| 郸城县| 资溪县| 毕节市| 建平县| 突泉县| 马关县| 延长县| 上杭县|