我使用的是嵌套路由,因此可能会导致此问题,但是,我不确定如何解决此问题。我有以下路线和儿童路线:

{
    path: '/summoner/:summonerName',
    component: Summoner,
    children: [
        { path: '', component: Matchlist },
        { path: '/match/:matchId', component: SpecificMatch, name: 'specificMatch' }
    ]
},


在路径/summoner/:summonerName上时,我想查看默认的Summoner父组件和Matchlist组件;在路径/summoner/:summonerName/match/:matchId上时,我要查看默认的Summoner父组件和specificMatch子组件。但是,当我尝试使用时,这可以正常工作:

this.$router.push({ name: 'specificMatch', params: { summonerName: this.summoner, matchId: matchId, summonerInfo: this.summonerInfo, match: match}})


我被发送到/match/:matchId路径而不是/summoner/:summonerName/match/:matchId,它破坏了组件,因为组件需要从路径中获取用户名。我以为this.$router.push会将我发送到正确的路径,a。任何提示如何解决此问题?

最佳答案

这是绝对路径和相对路径的问题。

名称为'specificMatch'的路由具有指定的绝对路径'/match/:matchId',因此可以在此处导航到该位置。如果您希望将路径追加到父路径的路径,则必须使路径相对,这意味着省去了初始斜杠(/)-e.i. path: 'match/:matchId'

09-17 04:28