Я использую вложенные маршруты, чтобы это могло бы вызвать проблему, однако я не уверен, как это исправить. У меня есть следующие маршруты и детские маршруты:
{
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 ответ
Это вопрос абсолютных и относительных путей.
Ваш маршрут с именем 'specificMatch'
имеет указанный абсолютный путь '/match/:matchId'
, так что это там, где вы навещаете. Если вы хотите добавить свой путь к пути вашего родительского маршрута, вам придется сделать свой путь относительно вашего пути, что означает выбросить исходную косулью (/
) - e.i. path: 'match/:matchId'
.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.