vue.js - 通过将插槽更改为作用域插槽,它不再出现在 this.$slots 和 this.$scopedslots
问题描述
我有一个父组件和一个子组件(它有一个 vuetify 表)。
我正在尝试使某些列显示来自父组件的芯片。我遇到了一个奇怪的问题,我不确定这是怎么回事。
父页面:(父页面比这更复杂,这就是为什么我将表格取出到另一个组件中,以便我可以将它与其他地方的其他东西结合使用)
<simple-table
v-if="!loading"
:tableData="tableData"
:loading="loading"
:headers="headers"
@search=""
:selected.sync="selected"
itemKey="groupName"
>
<template v-slot:userDatasetAccess="">
<v-chip color="red" dark>test</v-chip>
</template>
</simple-table>
当代码如上时,我可以看到 UserDatasetAccessColumn 中出现的芯片中的测试
子页面
<v-data-table
:headers="headers"
:items="tableData"
:search="search"
:loading="loading"
loading-text="Loading... Please Wait"
show-select
:item-key="itemKey"
v-model="selected"
@input="$emit('update:selected',selected)"
>
<template v-slot:[getSlot(slot)]="{ item }" v-for="(_, slot) in $slots">
<slot :item="item" :name="slot"></slot>
</template>
</v-data-table>
methods: {
getSlot(slot) {
return `item.${slot}`
}
},
但是,当我将父级更改为:
<template v-slot:userDatasetAccess="item">
<v-chip color="red" dark>{{item.userDatasetAccess}}</v-chip>
</template>
它不再起作用了。我已经控制台记录了 this.$slots 和 this.$scopedslots 并且它们变成了空的。
所以我的问题是:为什么当我执行 v-slot:userDatasetAccess="" vs v-slot:userDatasetAccess="item" 时,它不再作为 $slots 和 $scopedslots 的一部分出现。
有没有更好的方法通过父级的插槽访问列?
解决方案
推荐阅读
- postgresql - 在 Postgresql 中存储基于环境的变量
- python - 如何使用 lambda 函数将 ms sql 数据库从 bak 文件自动恢复到 s3 中的 rds
- drupal - Drupal CMS 站点中的邮件配置,无需管理面板
- swift - 如何检索switch的值并传递给Object?
- javascript - 如何通过减少请求来改进我的 AJAX 实时搜索
- android - 使用 Koin 进行依赖注入
- node.js - 我正在导入一个异步函数并尝试使用它
- python - 将作为 unicode 接收的数据存储为 zip 文件
- java - 当我输入数字时,如何获得不同的结果?
- javascript - Nativescript core cameraplus 与 Ml-kit 拍照问题