【发布时间】:2019-07-07 15:31:16
【问题描述】:
我想在 vue 中将一个变量作为 prop 从一个路由发送到另一个路由。
我有一个 vue 组件 Champions,使用 v-for 并为 JSON 文件中的每个角色创建一个名为 ChampionCard 的新组件,并且每次都绑定当前的冠军。
在 ChampionCard 中,我只显示冠军的名字和形象。 我希望,当您点击 ChampionCard 时,您会被重定向到另一个名为 Champion 的组件,其 URL 为 Champions/:champion。
但我找不到在这 2 条路线之间发送冠军数据的方法。
冠军组件:
<div class="champions">
<ChampionCard v-bind:champion="champion" v-for="champion in champions" :key="champion.key">
</ChampionCard>
</div>
冠军卡组件:
<article @click="redirectTo(champion)" class="champion">
<img class="champion-icon" :src="champion.image" :alt="champion.name">
<h2 class="champion-name"> {{ champion.name }} </h2>
</article>
redirectTo(champion) {
this.$router.push({ name: 'champion', params: { champion: champion.key }})
}
当我被重定向到 Champions/championName 时,上面的代码正在运行,但我无法访问我的 Champion 变量。将它作为 Champion 组件中的道具发送的最佳方式是什么?
谢谢:)
【问题讨论】:
-
你的意思是你无权访问你的冠军变量?你知道,它是
this.$route.params.champion。但这只是key。你必须做一个global.variable.champions.find(champion => this.$route.params.champion)。所以我的观点是,你不能在路由之间传递完全结构化的对象。您必须能够进行查找才能获得它。 -
谢谢。您能否将此作为答案发布,以便我批准?
标签: javascript vue.js routing