css - 在 React 中包含 SVG 资源作为组件
问题描述
我正在使用正常的方式来显示 SVG 资产,例如
import pic from "../assets/pic.svg";
const myPic = () => <img src={pic}/>;
这将pic
成为 svg 图片的路径。
现在我想让图片响应它的背景颜色来改变它的填充颜色。我已经尝试过 CSS 方法来更改fill
属性,它有效,但只有当我将 svg 内容内联而不是将其设置为 时img
src
,例如
const myPic = () => <svg>.....</svg>;
我的问题是,如果我还想从 assets 文件夹中导入 svg 图片(因为 svg 图片很大我不想把它内联),上面的第一种方法会返回一个路径而不是 svg 的内容作为字符串,那么如何将 svg 资产导入为字符串?或者随意提出替代方案以实现显示具有动态对比色的 svg。
解决方案
答案因您使用的工具链而异。如果您使用的是 Create React App:
import { ReactComponent as Pic} from '../assets/pic.svg';
// code omitted...
// Use it like normal components
return <Pic />;
https://create-react-app.dev/docs/adding-images-fonts-and-files
如果您使用不同的工具链,请通知我。
推荐阅读
- highcharts - 更改 Highcharts Gantt X 轴标签的字体大小和方向
- swift - 快速从 uiview 访问标签栏
- java - ChoiseBox JavaFX 不显示数据
- javascript - 如何将 HTML 文本字段中的数据提交到 JavaScript 变量?
- reactjs - JSX - 动态渲染本地图像
- vue.js - 如何根据存储在 vuex 中的值更改 vuejs 页面的路由?
- r - 有没有办法使用存在/不存在数据计算多个站点之间的差异梯度?
- c++ - 在有条件的情况下使用三元运算符会产生意外的输出
- python - 如何使用 Python 在 Selenium 中使用经过身份验证的代理
- python - 有没有办法在 Pydev 中运行 Python 代码?