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

Vuetify 3 v-data-table条件渲染v-icon失败求助

Vuetify 3 v-data-table 条件渲染v-icon解决方案

针对你遇到的问题,给你几个可行的解决思路:

  • 先确认数据类型
    很多时候问题出在item.active的类型上,如果后端返回的是字符串格式的"1"或"0",用item.active == 1会因为类型不匹配导致判断失效。可以改成严格相等判断:

    <template v-slot:items.active="{ item }">
      <v-icon v-if="item.active === 1" size="small">mdi-pencil</v-icon>
      <v-icon v-else size="small">mdi-delete</v-icon>
    </template>
    

    如果是字符串类型,就改成:

    <v-icon v-if="item.active === '1'" size="small">mdi-pencil</v-icon>
    
  • 用三元表达式简化写法
    Vuetify3完全支持在模板里使用三元表达式,这种写法更简洁,也能避免v-if/v-else可能出现的渲染问题:

    <template v-slot:items.active="{ item }">
      <v-icon size="small">{{ item.active === 1 ? 'mdi-pencil' : 'mdi-delete' }}</v-icon>
    </template>
    
  • 检查响应式与数据正确性
    确认你的items数据是Vue3的响应式数据(比如用ref或reactive声明),同时可以在插槽里临时打印{{ item.active }},确认渲染时拿到的值是预期的1或0,排除数据传递的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:43:19