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

React.js中根据nav变量切换a标签内容为文本或图标问题求助

问题原因与解决方案

你的问题出在把HTML标签以字符串形式直接插值,框架(比如Vue)的{{}}插值会把内容解析为纯文本,不会将字符串转换成DOM元素,所以才会显示字面的<span class="material-symbols-outlined"> home </span>文本,而非图标。

推荐解决方案:使用条件渲染直接写元素

这种方式更直观且安全,避免字符串拼接HTML的问题:

<a href="/">
  <template v-if="nav">HOME</template>
  <span v-else class="material-symbols-outlined">home</span>
</a>

备选方案:使用v-html解析HTML字符串(需注意XSS风险)

如果一定要用三元表达式,可以通过v-html指令让框架解析字符串为HTML:

<a href="/" v-html="nav ? 'HOME' : '<span class=\"material-symbols-outlined\">home</span>'"></a>

注意:v-html会直接渲染HTML内容,如果内容来自用户输入,存在XSS攻击风险,静态内容可放心使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:01:06