首页 > 解决方案 > vue-router 3.5.1 中的警告:的 tag 属性已被弃用,并已在 Vue Router 4 中删除

问题描述

由于我更新了 Vue.js 应用程序的节点包,我在浏览器控制台中收到以下警告:

[vue-router] 的 tag 属性已弃用,并已在 Vue Router 4 中删除。使用 v-slot API 删除此警告: https ://next.router.vuejs.org/guide/migration/#removal- of-event-and-tag-props-in-router-link。@vue-router.esm.js:16

当然,信息非常简单,但是:

在使用的地方,甚至没有应用<router-link>已弃用的tag道具:

<router-link
    class="button-add"
    :to="{
        name: 'ItemEditorAdd',
        params: { parent_item_id: item.id },
    }"
    :id="'button-' + item.id"
>
    <i class="material-icons">add</i>
</router-link>

此外,安装的 vue-router 包甚至不在版本 4 中,而是在版本 3 中,与 v2.6 中安装的 vue.js 正确匹配。警告消息给我的印象是,兼容性检查器假定 v4 正在使用中。

摘自 package.json:

"vue": "^2.6.12",
"vue-class-component": "^7.2.6",
"vue-cookies-ts": "^1.5.19",
"vue-i18n": "^8.24.4",
"vue-property-decorator": "^9.1.2",
"vue-router": "^3.5.1",
"vuex": "^3.6.2",
"vuex-class": "^0.3.2",
"vuex-oidc": "^3.10.2"

我很困惑,在StackOverflowvue-router Github issues中找不到解决方案。
此警告是否无法修复,而只是在将来某个时间升级时不断提醒您注意这一点?如果是这样,为什么它不检查是否tag真的使用了 prop - 似乎有点垃圾邮件..

UPDATE
这个问题也出现在 vue-router v3.5.2 中。
有一个GitHub vue-router 问题(已关闭)和一个Github boostrap-vue 问题(打开)。

标签: typescriptvue.jsvuejs2vue-routervue-router4

解决方案


在 caughner 的这个GitHub boostrap-vue 问题评论中找到了答案:

该问题已由#6374修复,并将出现在下一个次要版本 (2.22.0)中。
该 PR 解决了大多数用户的警告,除了那些在 BLink 和类似组件上实际使用 event 和 tag 道具的用户。

bootstrap-vue 2.22.0 尚未发布。当前最新版本是 2021 年 1 月的 v2.21.2。

AFAIK 目前在甚至不使用eventandtag属性的情况下没有解决此警告的方法。


推荐阅读