我想从我的自定义组件中使用插槽获取v-data-table项和标题。
自定义组件:@/组件/我的数据表.vue
<template>
<div>
<v-data-table :headers="headers" :items="items"> </v-data-table>
</div>
</template>
<script>
export default {
props: {
items: {
type: Array,
default: () => [],
},
headers: {
type: Array,
default: () => [],
},
},
};
</script>
App.vue
<template>
<v-app>
<v-main>
<my-data-table :headers="headers" :items="items" item-value="name">
<template v-slot:[`column.name`]="{ column }">
{{ column }}
</template>
<template v-slot:[`item.name`]="{ item }">
{{ item.props }}
</template>
</my-data-table>
</v-main>
</v-app>
</template>
<script>
import MyDataTable from "@/components/MyDataTable.vue";
export default {
components: {
MyDataTable,
},
data() {
return {
headers: [
{ title: "Dessert", align: "start", key: "name" },
{ title: "Calories", align: "end", key: "calories" },
{ title: "Fat (g)", align: "end", key: "fat" },
],
items: [
{
name: "Frozen Yogurt",
calories: 159,
fat: 6.0,
},
{
name: "Jelly bean",
calories: 375,
fat: 0.0,
},
],
};
},
};
</script>
如果我把它们放在本机组件中,它们就能工作,但如果我把它们放在自己的组件中,它们就不能工作。
预期结果:
活性结果:
我使用vue 3和vuetify 3。
这是codesandbox ready link。
1条答案
按热度按时间bbuxkriu1#
尝试通过迭代从v-datatable转发插槽,然后创建可在父组件中访问的新插槽: