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

Quasar中使用computed属性动态切换SVG图标失效问题求助

解决Quasar中通过computed动态切换SVG图标的问题

你的代码无法正常工作的核心原因是:computed返回的是图标名称的字符串,而非导入的图标变量本身。Quasar的q-icon组件在使用从@quasar/extras导入的SVG图标时,需要直接绑定图标变量,而不是字符串形式的变量名。

修正后的代码如下:

<template>
  <q-icon :name="iconName" />
</template>

<script setup>
import { computed } from 'vue'
import { mdiCheckBold, mdiCloseThick } from '@quasar/extras/mdi-v7'

const iconName = computed(() => {
  if (/* 你的判断逻辑 */) return mdiCheckBold // 直接返回导入的图标变量
  return mdiCloseThick // 不要返回字符串形式的名称
})
</script>

原理说明

当你直接写:name="mdiCheckBold"时,Vue会将其解析为已导入的图标变量并传递给q-icon组件;如果返回字符串(比如'mdiCheckBold'),组件会把它当作普通的图标名称去查找,而这个字符串并不对应实际的SVG图标资源,因此无法正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:04:55