Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js-导航已使用新路径复制_Javascript_Vue.js_Vuejs2_Vue Router_Router - Fatal编程技术网

Javascript Vue.js-导航已使用新路径复制

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

我需要有关Vue.jsNavigationDuplicated错误的帮助。我正在开发一个web应用程序,允许用户在不同页面之间导航

我得到“NavigationDuplicated”错误,即使我没有推同一个网页。具体来说,我得到的错误是:

消息:“不允许导航到当前位置(“/faq/new”)、名称:“NavigationDuplicated”、

我的路由器代码如下:

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" });
例如,我通过以下路线历史记录获得错误:

  • 本地主机:8080/#/kb
  • localhost:8080/#/faq/new
  • 本地主机:8080/#/kb
  • localhost:8080/#/faq/new--->这里出现了NavigationDuplicated错误
  • 在此图片中,您可以看到Vue extension为Chrome注册的路由历史记录:


    你能帮我理解为什么会出现“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" })