Nuxt / Vue-Router导航卫士重新路由到动态路由

时间:2019-06-05 15:49:34

标签: vue.js vue-router nuxt.js

我目前正在使用nuxt 2.7.1作为我的学士论文的一部分开发SPA Web应用程序。

在我的某些页面上,我设置了interface Parent{ void methodOne(); void methodtwo(); } 导航保护以检查用户是否可以访问该页面。如果没有,我想将用户重定向到动态路由(即beforeRouteEnter)。

访问受导航保护的页面时,Nuxt显示错误页面,指出/info/1,尽管URL是正确的,并且在错误页面上的简单重新加载正确地引导我进入了动态路线。

我目前正在通过以下方式使用导航卫士:

This page could not be found

为澄清起见,我的目录结构如下:

beforeRouteEnter(to, from, next) {
  if (!isValidAccess()) {
    console.warn("illegal access");
    next(`/info/1`);
  } else next();
}

我尝试尝试传递给pages |__ info | |__ _index.vue (redirect target) |__ shop |__ _index.vue (with navigation guard) 的参数,但到目前为止没有成功。在目标路由中实现另一个next()并记录beforeRouteEnter参数时,一切似乎都很正常。

我希望你们能帮助我。我已经在这个问题上花了太多时间。

最诚挚的问候

编辑:

我创建了一个最小的示例,其中到动态路由的路由工作没有问题... https://codesandbox.io/embed/codesandboxnuxt-t1d0e

找到问题的解决方案时,我会更新问题。

1 个答案:

答案 0 :(得分:0)

这对我有用-在目标网页(索引)上,您被重定向到/info/1动态路由。这就是你想要的吗?

https://codesandbox.io/embed/codesandboxnuxt-vvbrt

我唯一要做的就是将动态路由包装在<no-ssr>标记中,以消除错误。您的组件与SSR不兼容。