reactjs - 无法将 SVG 文件导入反应
问题描述
我有一些位于 svg 文件中的图标,我需要在我的 React 应用程序中使用这些图标,问题是当我尝试导入它时它所说的只是“找不到模块”。
这个类看起来像这样
import * as React from "react";
import "./LeaderboardBar.scss";
import Trophy from './icon_tournament.svg'
export interface Props
{
display: boolean
}
export interface State
{
}
export class LeaderboardBar extends React.Component<Props, State>
{
render()
{
return (
<div id="leaderboard-bar">
<div>
<p id="leaderboard-bar-text">Raging Rex Tournament</p>
</div>
<div id="rank-text">
<p id="leaderboard-bar-text">Your Rank <span id="gold-text">77/542</span></p>
</div>
<div id="score-text">
<p id="leaderboard-bar-text">Score <span id="gold-text">54</span></p>
</div>
<div id="terms-text">
<p id="leaderboard-bar-text">Terms & Info</p>
</div>
</div>
)
}
}
我安装了https://www.npmjs.com/package/@svgr/webpack但问题仍然存在。将 svg 导入 React 的最佳实践是什么?
解决方案
要回答您关于将 SVG 导入 react 的最佳实践是什么的问题,这是一个非常好的方法:
import { ReactComponent as SvgSmiley } from "./assets/smiley.svg";
function App() {
return (
<div className="App">
<SvgSmiley style={{ fill: "green" }} />
</div>
);
}
SVG 文件只包含 SVG 标记。它与上面的代码位于同一目录中,但位于另一个名为“assets”的文件夹下。
这种方式允许您控制 SVG 样式,例如从代码中填充。
推荐阅读
- laravel - 在 Laravel 中动态配置数据库连接
- attributes - mat4 属性的步幅与偏移量
- snowflake-cloud-data-platform - Snowflake 中虚拟仓库服务器的服务器规格
- python - cv2.findContours() 如何编辑图像?
- xml - 这种类似 XML 的格式的 mimetype / 格式是什么?
- python - 从 Google Drive Colab 下载数据
- c# - 如何创建工厂以创建接受更多派生类型的参数的派生对象
- javascript - 一阵到四阵
- python - groupby week - 熊猫数据框
- excel - Excel 列中的自动填充嵌套 IF 公式