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

Vuetify v-data-table操作按钮不显示问题排查求助

Vuetify v-data-table 编辑/删除图标按钮不显示问题修复

问题原因及对应修复方案:

  • 插槽名称大小写不匹配
    表头配置中Actions列的value为大写开头的"Actions",但自定义插槽用的是小写的item.actions,Vue插槽名称区分大小写,导致插槽无法匹配渲染。
    修复:将插槽名称改为#item.Actions(与表头value一致),或者把表头里的value改为小写的"actions"。

  • 图标名称包含多余空格
    第一个图标标签内的mdi-pencil-outline前有空格,会导致图标无法正确识别加载。
    修复:去掉图标名称前的空格,改为<v-icon>mdi-pencil-outline</v-icon>。

  • 可选:插槽语法统一规范
    模板中同时混用了#和v-slot:两种插槽语法,虽不影响功能,但建议统一使用更简洁的#语法。

修复后的完整代码片段:

<template>
  <div class="d-flex flex-column pa-5">
    <div class="d-flex pb-5">
      <h2 class="mr-auto">Category List</h2>
      <NuxtLink to="/admin/cform">
        <v-btn variant="tonal" color="primary"> +Add Category </v-btn>
      </NuxtLink>
    </div>
    <div class="d-flex justify-center">
      <v-data-table
        v-model:items-per-page="itemsPerPage"
        :headers="headers"
        :items="categories"
        class="data-table rounded-lg"
        hover
      >
        <template #item.category="{ item }">
          <strong>{{ item.category }}</strong>
        </template> 

        <!-- 修复:插槽名称改为和表头value一致的Actions -->
        <template #item.Actions="{ item }">
          <v-btn 
            color="primary"
            class="elevation-0"
            icon
            variant="plain"
            @click="editCategory(item)"
          >
            <!-- 修复:去掉图标名称前的空格 -->
            <v-icon>mdi-pencil-outline</v-icon>
          </v-btn>
          <v-btn
            color="error"
            variant="plain"
            class="elevation-0"
            icon
            @click="deleteCategory(item)"
          >
            <v-icon>mdi-trash-can-outline</v-icon>
          </v-btn>
        </template>
      </v-data-table>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      itemsPerPage: 5,
      categories: [],
      headers: [
        { title: "Category ID", value: "CategoryId" },
        { title: "Category", value: "Category" },
        { title: "Actions", value: "Actions", sortable: false },
      ],
    };
  },
  // 补充定义方法避免控制台报错
  methods: {
    editCategory(item) {
      // 后续添加编辑逻辑
      console.log('Edit category:', item)
    },
    deleteCategory(item) {
      // 后续添加删除逻辑
      console.log('Delete category:', item)
    }
  }
}
</script>

额外检查项:

确认项目已正确安装并配置Material Design Icons,Nuxt+Vuetify环境需在nuxt.config.ts中启用mdi图标集:

export default defineNuxtConfig({
  modules: ['@nuxtjs/vuetify'],
  vuetify: {
    icons: {
      defaultSet: 'mdi'
    }
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:37:33