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

React中如何将SVG URL转换为SVG标签?

如何在React中将SVG URL转换为可直接使用的SVG标签?

问题背景

后端返回的SVG图标数据格式如下:

{
  "status": 200,
  "amenities": [
    {
      "id": 4,
      "amenities_name": "TV",
      "amenities_icon": "amenities/2AdAlkq4uNImDYGEdoUmHdzD6ldRLzSwQeSRrkKe.svg",
      "amenities_category": "accommodation",
      "created_at": "2024-03-27T13:02:25.000000Z",
      "updated_at": "2024-04-01T01:43:50.000000Z"
    },
    {
      "id": 5,
      "amenities_name": "Wifi",
      "amenities_icon": "amenities/iDNYy1PEiWtaMjfEEio0rfAqNPQKerfyetRpEEzc.svg",
      "amenities_category": "accommodation",
      "created_at": "2024-03-27T13:02:45.000000Z",
      "updated_at": "2024-03-27T13:02:45.000000Z"
    }
  ]
}

将基础URL与amenities_icon字段拼接后,在浏览器中可以看到完整的SVG标签内容,但在React项目里目前只能通过img标签加载这些图标,我需要直接使用SVG标签来渲染,以便能自定义样式或操作SVG元素。

尝试过的方法

我写了一个异步函数尝试获取SVG文本内容,这个方法在普通JavaScript环境中有效,但在React里无法正常转换为SVG标签:

export const convertToSVG = async (url) => {
  try {
    const response = await fetch(url);
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    const svgText = await response.text();
    return svgText;
  } catch (error) {
    console.error("Error fetching SVG:", error);
    return null; 
  }
};

求助

请问如何在React中实现将SVG URL转换为可直接渲染的SVG标签?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:53:10