Vue.js 路由器不显示正确的子路由
我遇到了 Vue.js 路由器的问题。正如标题所示,这个问题是关于只显示父路由页面的子路由。例如,您的帐户详细信息有一个路径www.example.com/account。然后,在您的帐户,你可以看到不同的项目,这将是可用的路线www.example.com/account/project/foobar那里project/foobar是一个孩子的路线/account和foobar是一个动态参数。现在,当您进入一个项目时,您希望看到该项目,但您仍然会看到帐户页面。这是我遇到的问题。我觉得一切都设置正确,但代码无论如何都显示在下面。路由器.jsconst routes = [ ..., // other routes { path: '/account', component: AccountPage, meta: { title: 'Your account' }, children: [ { path: 'project/:id', component: ProjectPage, props: true, meta: { title: 'Project' } } ] }];const router = new VueRouter({ routes, mode: 'history'});// Sets meta tags in the HEAD tag to, for example, change the title.router.beforeEach((to, from, next) => { const nearestWithTitle = to.matched.slice().reverse().find(r => r.meta && r.meta.title); const nearestWithMeta = to.matched.slice().reverse().find(r => r.meta && r.meta.metaTags); const previousNearestWithMeta = from.matched.slice().reverse().find(r => r.meta && r.meta.metaTags); if(nearestWithTitle) document.title = nearestWithTitle.meta.title; Array.from(document.querySelectorAll('[data-vue-router-controlled]')).map(el => el.parentNode.removeChild(el)); if(!nearestWithMeta) return next(); }); }) .forEach(tag => document.head.appendChild(tag)); next();});我四倍检查了我是否使用了正确的组件,并且我 100% 确定我这样做了。不过,它只是一直显示帐户页面而不是项目页面。我确实注意到标题因更改元标记的代码而发生了变化,这意味着它知道下一页是项目页面。我还检查了函数参数to包含的内容,并很快发现这是它想要去的项目路线,这完全有道理。项目页面.vue<template> <transition name="project-anim"> <div> Foo BAR </div>< /transition></template><script> import MeineProject from '../../components/meine/project'; export default { components: { MeineProject } }</script>直接转到 URL(没有通过链接或任何东西进行路由导航),也只显示帐户页面,所以我很确定这不是由于某种原因无法正常工作的转换。控制台中没有错误或警告。我完全没有选择。我希望你能帮助我。谢谢你的时间!:)
查看完整描述