vuejs2 - 如何将 v-slot:activator 和 v-on 与子组件一起使用?
问题描述
我的 Vue.js 项目有一些问题。
父组件:
<v-menu>
<template v-slot:activator="{ on }">
<more-actions :ref="'moreActions' v-on="on" />
</template>
<v-list>
<v-list-item @click="handleClick()">
<v-list-item-title>
Sample
</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
MoreActions 组件
<template>
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-btn icon v-on="on" @click="$emit('click', $event)">
<v-icon small>
more_vert
</v-icon>
</v-btn>
</template>
<span>More Actions</span>
</v-tooltip>
</template>
此代码运行良好(在 Vuetify v2.1.9 下),但在 Vuetify v2.1.15 中无法运行(菜单在左上角打开。)
我怎样才能解决这个问题?
这是 v2.1.15 中的运行代码
<template>
<div class="text-center">
<v-menu>
<template v-slot:activator="{ on: menu }">
<v-tooltip bottom>
<template v-slot:activator="{ on: tooltip }">
<v-btn icon v-on="{ ...tooltip, ...menu }" @click="$emit('click', $event)">
<v-icon small>
more_vert
</v-icon>
<v-btn>
</template>
<span>Im A ToolTip</span>
</v-tooltip>
</template>
<v-list>
<v-list-item @click="handleClick()">
<v-list-item-title>
Sample
</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
</div>
</template>
请帮我。
解决方案
将此部分移动到父组件。并在子组件中使用<slot />
而不是这部分。
<v-list>
<v-list-item @click="handleClick()">
<v-list-item-title>
Sample
</v-list-item-title>
</v-list-item>
</v-list>
推荐阅读
- javascript - 运行css动画后执行函数
- r - 将列转换为数据框列表并维护名称
- azure-blob-storage - azure 门户中的“HTTP 标头之一的值格式不正确”
- javascript - 如何从具有不同值的两个对象返回键和值
- mysql - 如何检查一个表中的记录并插入另一个表?
- python - 如何在 PyQt5 tableWidget 的同一单元格中打印多行条目?
- r - 使用 tidyverse 和 broom 的许多回归:相同的因变量,不同的自变量
- azure-active-directory - 如何在自定义 Azure AD B2C SignUpOrSignin 策略上启用 Javascript
- java - 在运行时找不到 Jar 依赖项
- react-native - 无法使用 react-native-paper 和 @react-navigation/bottom-tabs 滚动