react umi中使用svg线上图片不加载问题

news/2024/11/30 5:35:26/

参考链接: https://www.jianshu.com/p/c927122a6e82
前言:
在react项目中,我们本地通过img标签的src使用svg图片是可以加载的,但是发布到线上图片加载不出来。

import stopImg  from '@/images/stop.svg';
<img src={stopImg  }/>

在这里插入图片描述

解决方案

方案一

使用场景:直接在当前页面引入svg图片
有一个 svgr 插件,是支持以 react component 的方式,引入 svg 图片的。
文档链接: https://react-svgr.com/docs/webpack/
在这里插入图片描述

import { ReactComponent as StopImg } from '@/images/stop.svg';
<StopImg />
方案二

使用场景:1.直接在当前页面引入svg图片 2.自定义svg图片,svg图片是对象的属性

在 3.9.0 之后,Icon组件我们使用了 SVG 图标替换了原先的 font 图标,从而带来了以下优势:

完全离线化使用,不需要从 CDN 下载字体文件,图标不会因为网络问题呈现方块,也无需字体文件本地部署。
在低端设备上 SVG 有更好的清晰度。
支持多色图标。
对于内建图标的更换可以提供更多 API,而不需要进行样式覆盖。

我们使用ReactComponent 的方式使用svg图片,结合antd的Icon组件来使用。
文档链接:https://ant-design.antgroup.com/components/icon-cn#%E5%85%B3%E4%BA%8E-svg-%E5%9B%BE%E6%A0%87
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
statusEnum.ts

import { ReactComponent as StopImg } from '@/images/stop.svg';
import { ReactComponent as FailImg } from '@/images/fail.svg';/** 状态 */
export const StatusType = {Stoping: { color: '#000000', img: StopImg },Fail: { color: '#ffffff', img: FailImg },
};
import Icon from '@ant-design/icons';
import { StatusType } from './statusEnum';const Info: React.FC<IProps> = (props) => {
const status = props?.status as keyof typeof StatusType ;//对于status数据进行类型定义和StatusType 做关联return (<Icon component={StatusType [status]?.img} />)
}export default Info;

http://www.ppmy.cn/news/676233.html

相关文章

梦幻手游最新服务器,《梦幻西游》手游服务器如何选择 新区还是老区

最近《梦幻西游》手游开区不断&#xff0c;但在老区和新区之间&#xff0c;你知道该如何取舍么?今天小编就为大家进行一番对比&#xff0c;虽然选择权在你&#xff0c;但是希望经过这一对比之后&#xff0c;你的选择是无悔的。 新区&#xff1a;站在同一条起跑线之上新区最吸引…

梦幻西游手游登录显示服务器错误,梦幻西游手游登录不了 为什么登陆失败

梦幻西游手游登录不了怎么办&#xff0c;梦幻西游手游为什么登陆失败!梦幻西游手游登录失败上不了解决办法!梦幻西游手游这款万众瞩目的端游移植手游终于和大家见面了&#xff0c;虽然是限号的删档内测&#xff0c;但是火爆程度也是超出想象啊&#xff0c;小熊还记得刚跑到东海…

苹果手机充值显示服务器异常,梦幻西游手游充值出现异常的iOS系统解析

梦幻西游手游充值出现异常的iOS系统解析&#xff0c;目前iOS系统充值出现异常&#xff0c;如果您在充值时遇到 “iOS目前无法处理您的购买” 的问题&#xff0c;这个情况主要是由于苹果服务器存在问题导致的&#xff0c;目前会导致以下两种情况&#xff1a; 1、充值的时候无法充…

苹果系统无法购买服务器,梦幻西游手游iOS目前无法处理您的购买解决办法

亲爱的玩家&#xff1a; 目前iOS系统充值出现异常&#xff0c;如果您在充值时遇到 “iOS目前无法处理您的购买” 的问题&#xff0c;这个情况主要是由于苹果服务器存在问题导致的&#xff0c;目前会导致以下两种情况&#xff1a; 1、充值的时候无法充值&#xff0c;出现 “iTun…

梦幻手游最新服务器,梦幻西游手游最新要合并哪些服务器 最新合区汇总

为提高玩家的游戏体验&#xff0c;梦幻西游手游会将一些人少的服务器合并&#xff0c;那在最近梦幻西游手游中计划要合并哪些服务器呢?合并之后又有哪些改变呢?一起来看看下面小编给大家带来的最新合区汇总吧! 最新合区消息 梦幻西游手游最近一次合区会在2018年9月5日上午8:0…

【Matplotlib】多级雷达图绘制

一、实例1&#xff1a;个人能力画像雷达图 # -*- coding: utf-8 -*- """ Created on Sat Jul 1 20:52:54 2023author: zcq """import numpy as np import matplotlib.pyplot as plt import matplotlibmatplotlib.rcParams[font.family]SimHei …

B/S架构的C#云检验系统源码 实验室信息管理系统源码

科技的飞速发展为实验室信息管理带来了新机遇&#xff0c;云计算技术的应用更是为实验室信息管理打开了新的大门。云 LIS 实验室信息管理系统&#xff0c;作为一种新型的信息化管理方案&#xff0c;已经在多个实验室的信息化管理中得到应用&#xff0c;并且具有广阔的应用前景。…

判断一周中的某一天是否为工作日

public class SwitchDemo02 { public static void main(String[] args) { int week 2; switch (week) { case 1: case 2: case 3: case 4: case 5: // 当 week 满足值 1、2、3、4、5 中任意一个时&#xff0c;处理方式相同 System.out.println("今天是工作日"); bre…