You need to enable JavaScript to run this app. Safari中React引入的SVG图标触发操作后渲染异常如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Safari中React引入的SVG图标触发操作后渲染异常如何解决

Safari浏览器下React项目SVG图标展开组件后渲染异常

问题现象

  • 项目使用SVG图标实现组件的展开、折叠功能,图标初始渲染正常
  • 展开组件并执行相关操作后,SVG图标会出现渲染异常
  • 后续展开其他组件时,此前渲染异常的SVG图标会自动恢复正常显示
  • 该问题在所有使用SVG图标的位置均可复现

已核实信息

  • SVG组件本身代码未发生任何改动
  • 项目基于React技术栈开发,SVG图标以组件形式加载
  • 问题仅在Safari浏览器中出现,其他浏览器无此异常

相关代码

折叠图标SVG组件代码

export const CollapseIcon = () => (<svg
  xmlns="http://www.w3.org/2000/svg"
  xmlnsXlink="http://www.w3.org/1999/xlink"
  width="24"
  height="24"
  viewBox="0 0 24 24"
>
  <defs>
    <path
      id="gt4gdtq39a"
      d="M7.146 9.146c.174-.173.443-.192.638-.057l.07.057L12 13.293l4.146-4.147c.174-.173.443-.192.638-.057l.07.057c.173.174.192.443.057.638l-.057.07-4.5 4.5c-.174.173-.443.192-.638.057l-.07-.057-4.5-4.5c-.195-.196-.195-.512 0-.708z"
    />
  </defs>
  <g fill="none" fillRule="evenodd">
    <g>
      <g transform="translate(-956 -290) translate(956 290)">
        <mask id="reyuf8n5tb" fill="#fff">
          <use xlinkHref="#gt4gdtq39a" />
        </mask>
        <use fill="#000" fillRule="nonzero" xlinkHref="#gt4gdtq39a" />
        <g fill="#F7274A" mask="url(#reyuf8n5tb)">
          <path d="M0 0H24V24H0z" />
        </g>
      </g>
    </g>
  </g>
</svg>
);

SVG组件使用逻辑

{expanded ? <CollapseIcon /> : <ExpandIcon />}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 14:36:08