【发布时间】:2021-01-19 02:18:48
【问题描述】:
我有这样的代码:
<img src={category.svg} alt={category.name} />
它可以工作,但作为图像不是 React 组件,我无法进行任何操作。 SVG URL 正在动态变化,我无法导入或转换它。你有什么想法吗?
【问题讨论】:
-
如果您希望它具有交互性,请不要使用
。
我有这样的代码:
<img src={category.svg} alt={category.name} />
它可以工作,但作为图像不是 React 组件,我无法进行任何操作。 SVG URL 正在动态变化,我无法导入或转换它。你有什么想法吗?
【问题讨论】:
像这样创建一个自定义反应组件Svg
import { memo } from "react";
import inlinesvg from "react-inlinesvg";
const Svg = memo(inlinesvg);
export default Svg;
现在,当您需要使用此组件时,使用特定的 .svg 文件,请像这样使用它:
import One from "resources/images/one.svg";
import Two from "resources/images/two.svg";
...
...
return <Svg src={this.props.isOne ? One : Two}/>
【讨论】:
src 包含您要加载的 SVG 文件。它可以是要求、URL 或字符串(base64 或 url 编码)。更多细节在这里:npmjs.com/package/react-inlinesvg