Javascript Vue.js-导航已使用新路径复制
我需要有关Vue.js和NavigationDuplicated错误的帮助。我正在开发一个web应用程序,允许用户在不同页面之间导航 我得到“NavigationDuplicated”错误,即使我没有推同一个网页。具体来说,我得到的错误是: 消息:“不允许导航到当前位置(“/faq/new”)、名称:“NavigationDuplicated”、 我的路由器代码如下:Javascript Vue.js-导航已使用新路径复制,javascript,vue.js,vuejs2,vue-router,router,Javascript,Vue.js,Vuejs2,Vue Router,Router,我需要有关Vue.js和NavigationDuplicated错误的帮助。我正在开发一个web应用程序,允许用户在不同页面之间导航 我得到“NavigationDuplicated”错误,即使我没有推同一个网页。具体来说,我得到的错误是: 消息:“不允许导航到当前位置(“/faq/new”)、名称:“NavigationDuplicated”、 我的路由器代码如下: import Vue from "vue"; import VueRouter from "vue
import Vue from "vue";
import VueRouter from "vue-router";
import HomeView from "../views/HomeView.vue";
import KBView from "../views/KBView.vue";
import FaqDetailView from "../views/FaqDetailView.vue";
import NewFaqView from "../views/NewFaqView.vue";
Vue.use(VueRouter);
const routes = [
{
path: "/",
name: "Home",
component: HomeView
},
{
path: "/kb",
name: "Knowledge Base",
component: KBView
},
{
path: "/faq/:id",
name: "Faq details",
component: FaqDetailView
},
{
path: "/faq/new",
name: "New faq",
component: NewFaqView
}
];
const router = new VueRouter({
routes
});
export default router;
在每个视图中,都有一个按钮重定向到另一个视图。例如,单击按钮后,将执行以下代码:
this.$router.push({ name: "Knowledge Base" });
例如,我通过以下路线历史记录获得错误:
你能帮我理解为什么会出现“NavigationDuplicated”错误吗?如何解决此问题?这里有解释和解决方案,您也可以检查和
基本上就是抓住并忽略这条信息。谢谢你的回答。我读了这些链接,但它们没有回答我的问题。如果您仔细阅读我的路由历史记录,您会发现我在从…/kb路由到…/faq/new时会得到“NavigationDuplucated”。此外我希望找到一个解决方案,而不是忽略错误。@NicolaMassarenti您使用的是哪个版本的vue路由器?我无法重现您的错误,因此vue路由器的主要贡献者和许多人都已经抱怨过这一点,以及像您这样的意外导航错误。目前,处理此错误的唯一方法是捕获错误它
changePage(){this.$router.push({name:“fn”}).catch((error)=>{//log error});},
您也可以引用,因为基于路由器承诺,您可以等待答案,同样,在同一个线程中,您可以找到全局处理导航错误的方法,但有时它们也有自己的缺点。请注意,最好在路由中添加这样的组件:{path:'/page',name:'page',component:()=>import(/*webpackChunkName:name,在加载组件时显示*)“path/to/Component.vue”)},
所以只有当用户遵循链接时才会导入此组件
this.$router.push({ name: "New faq" })