gpt4 book ai didi

javascript - 在作用域插槽中传递 Prop 不起作用

转载 作者:行者123 更新时间:2023-11-30 14:26:02 25 4
gpt4 key购买 nike

出于可重用性目的,我试图将我的表格包裹在一个槽中,但我在传递我的 label Prop 时遇到了问题:

我的主要父组件Parent.vue:

    <Table
:headers="headers"
:items="people"
:search="search"
:label="label"
>
<template scope="props">
Label is: {{ label }} <!-- this label is not printing out -->
<v-data-table :headers="props.headers" :items="people" :search="props.search">
<template slot="items" slot-scope="props">
<td>{{ props.item.firstName }}</td>
<td>{{ props.item.lastName }}</td>
<td>{{ props.item.email }}</td>
</template>
</v-data-table>
</template>
</Table>

我的 Table 组件:

<template>
<div>
<slot :items="items" :headers="headers" :search="search" scoped-slot="{label: label}"></slot>
</div>
</template>

<script>
export default {
data() {
return {
label: "Some label"
}
},
computed: {

},
props: ["items", "headers", "search"]
}

</script>

此方法给我错误 Property or method "label"is not defined。有人可以帮助指出我在传递 label Prop 时出了什么问题吗?

最佳答案

您需要以 props.label 的形式访问它,而不仅仅是 label

<template slot-scope="slotProps">
Label is: {{ slotProps.label }} <!-- this label is not printing out -->
<v-data-table :headers="props.headers" :items="people" :search="props.search">
<template slot="items" slot-scope="props">
<td>{{ props.item.firstName }}</td>
<td>{{ props.item.lastName }}</td>
<td>{{ props.item.email }}</td>
</template>
</v-data-table>
</template>

并且在 Table 组件中,传递 label 就像其他绑定(bind)值一样简单:

<template>
<div>
<slot :items="items" :headers="headers" :search="search" :label="label"></slot>
</div>
</template>

关于javascript - 在作用域插槽中传递 Prop 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51923043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com