Я использую вложенные маршруты, чтобы это могло бы вызвать проблему, однако я не уверен, как это исправить. У меня есть следующие маршруты и детские маршруты:

{
    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 отправит меня на правильный путь, увы нет. Есть советы, как это исправить?

1
Bobimaru 29 Сен 2019 в 16:03

1 ответ

Лучший ответ

Это вопрос абсолютных и относительных путей.

Ваш маршрут с именем 'specificMatch' имеет указанный абсолютный путь '/match/:matchId', так что это там, где вы навещаете. Если вы хотите добавить свой путь к пути вашего родительского маршрута, вам придется сделать свой путь относительно вашего пути, что означает выбросить исходную косулью (/) - e.i. path: 'match/:matchId'.

2
Community 20 Июн 2020 в 09:12