首頁 > 軟體

Vue router/Element重複點選導航路由報錯問題及解決

2022-07-31 14:00:12

Vue router/Element重複點選導航路由報錯

雖然此報錯並不會影響專案執行,但是作為一個強迫症的碼農的確受不了error

解決方法如下

方法1:在專案目錄下執行 npm i vue-router@3.0 -S 將vue-router改為3.0版本即可;

方法2:若不想更換版本解決方法

在router.js中加入以下程式碼就可以

記住插入的位置

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}
// 如果你的改了push還是沒有生效,可以考慮改replace方法 
// 修改路由replace方法,阻止重複點選報錯
const originalReplace = VueRouter.prototype.replace;
VueRouter.prototype.replace = function replace(location) {
  return originalReplace.call(this, location).catch(err => err);
};

Vue使用element-UI路由報錯問題

Invalid prop: type check failed for prop "router". Expected Boolean, got String.

prop校驗路由時,要求router是一個boolean型別,但是得到的是一個string型別

官網上router引數是boolean型別

官網地址: Element - The world's most popular Vue UI framework

報錯程式碼

<el-menu
          router="true"
          default-active="2"
          class="el-menu-vertical-demo"
          text-color="#5F5F60"
          :collapse="isCollapse"
        >
  <el-menu-item index="/library/slider">
            <i class="el-icon-menu"></i>
            <span slot="title">首頁</span>
  </el-menu-item>
</el-menu>

修改方案

1、直接寫router 不要後面的true

<el-menu
          router
          default-active="2"
          class="el-menu-vertical-demo"
          text-color="#5F5F60"
          :collapse="isCollapse"
        >
  <el-menu-item index="/library/slider">
            <i class="el-icon-menu"></i>
            <span slot="title">首頁</span>
  </el-menu-item>
</el-menu>

2、通過資料繫結

<el-menu
          :router="router"
          default-active="2"
          class="el-menu-vertical-demo"
          text-color="#5F5F60"
          :collapse="isCollapse"
        >
  <el-menu-item index="/library/slider">
            <i class="el-icon-menu"></i>
            <span slot="title">首頁</span>
  </el-menu-item>
</el-menu>
data(){
    return {
       router:true
 }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com