You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue新语法下Vuetify v-list-group activator作作用域插槽时文本消失问题

解决Vuetify v-list-group作用域插槽activator文本消失的问题

这个问题我之前也碰到过,核心原因是使用作用域插槽时你完全替换了默认的activator结构,但没有手动复刻包含文本的容器元素。让我给你拆解清楚:

问题根源

当你只用<template v-slot:activator>(不带作用域参数)时,你是在给默认的activator结构追加内容,Vuetify会保留原有的标题容器和交互逻辑;但当你使用<template v-slot:activator="{on}">时,你是在完全替换默认的activator组件——这意味着原来承载标题文本的v-list-item-title和外层的v-list-item都被移除了,如果你只绑定v-on="on"但没重建这些结构,文本自然就没地方显示了。

修复方案

你需要手动构建完整的activator结构,把文本放在正确的容器里,同时绑定on对象保留展开/收起的交互:

正确的代码示例

<v-list-group>
  <!-- 作用域插槽接收on对象,并绑定到v-list-item上 -->
  <template v-slot:activator="{ on }">
    <v-list-item v-on="on">
      <!-- 用v-list-item-title承载你的标题文本 -->
      <v-list-item-title>我的分组标题</v-list-item-title>
    </v-list-item>
  </template>
  
  <!-- 子列表项 -->
  <v-list-item>
    <v-list-item-title>子项1</v-list-item-title>
  </v-list-item>
  <v-list-item>
    <v-list-item-title>子项2</v-list-item-title>
  </v-list-item>
</v-list-group>

为什么这样有效?

  • v-list-item是activator的基础交互容器,绑定v-on="on"会把Vuetify内置的展开/收起事件监听附加到它上面
  • v-list-item-title是Vuetify专门用来显示列表项文本的组件,它会继承列表的样式和布局规则,确保文本正确渲染

对比错误写法(文本消失)

如果你像下面这样写,文本不在v-list-item内部,也没有用v-list-item-title承载,就会导致文本消失:

<v-list-group>
  <template v-slot:activator="{ on }">
    我的分组标题 <!-- 文本没有放在正确的容器里 -->
    <v-list-item v-on="on"></v-list-item>
  </template>
</v-list-group>

简单来说,用作用域插槽自定义activator时,你需要把默认的activator结构自己写一遍,不能只加个事件绑定就完事~

内容的提问来源于stack exchange,提问作者Adam Leis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:07:53