【发布时间】:2020-12-21 23:28:53
【问题描述】:
我有一个组件,它接受一个食谱列表并为数组中的每个项目创建一个组件。我正在尝试将配方对象传递给一个组件,然后使用 Router-Link 传递给第二个组件
<RecipeCard
v-for="recipe in filteredRecipes"
:key="recipe.id"
:recipe="recipe"
/>
RecipeCard 组件内部如下所示:
<template>
<div>
<router-link :to="{ path: 'recipe/' + recipe.id, props:{recipe} }">
<div>{{ recipe.title }}</div>
<p>
{{ recipe.description }}
</p>
</router-link>
</div>
</template>
我正在尝试将配方传递给另一个组件,因此当单击配方卡时,它会打开一个详细视图。单击路由器链接后,它会指向此页面:
<template>
<div>
<div>{{recipe.id}}</div>
</div>
</template>
<script>
export default {
name: 'PageViewRecipe',
props: {
recipe: {
type: Object,
required: true
}
},
data() {
return {
};
}
};
</script>
<style></style>
配方是一个包含更多细节的对象。
import Vue from "vue";
import Router from "vue-router";
import Home from "./pages/PageHome";
import AddRecipe from "./pages/PageAddRecipe.vue";
import PageViewRecipe from "./pages/PageViewRecipe.vue"
Vue.use(Router);
const router = new Router({
mode: "history",
routes: [
{
path: "/",
name: 'Home',
component: Home,
},
{
path: "/add-recipe",
name: 'AddRecipe',
component: AddRecipe,
},
{
path: "/recipe/:id",
name: 'ViewRecipe',
component: PageViewRecipe,
props: true
}
],
});
export default router;
不幸的是,我的道具没有传递给最终组件。我尝试使用参数,但似乎没有任何效果。
【问题讨论】:
标签: javascript vue.js