首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态图像src在webpack反应元件中的应用

动态图像src在webpack反应元件中的应用
EN

Stack Overflow用户
提问于 2020-06-11 12:07:33
回答 2查看 786关注 0票数 0

我想在我的React组件中引用一个动态img。

代码语言:javascript
复制
<img src={`/assets/provider-logos/${provider.providerId.toLowerCase()}.png`} alt={`${provider.providerId.toLowerCase()}-logo`} />

我当前的webpack-config有一个file-loader规则,如下所示:

代码语言:javascript
复制
  {
    test: /\.(png|gif|jpg|svg|ico)$/,
    // include: imgPath,
    // csp policy complains about using inline images - using individual files instead
    use: "file-loader?name=assets/[name]-[hash].[ext]",
  },

如果img已用散列重命名,如何动态引用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-12 04:08:17

在这个场景中可以想到两个选项。

1创建一个包含所有图像的jsx文件,并将它们作为一个模块导出。下面将是一个文件,比如_images.jsx

代码语言:javascript
复制
import file1 from 'path';
import file2 from 'path';
import abc from 'src/assests/abc.png';

export { file1, file2, abc };

其中file1、file2是您期望提供者使用的图像名称。

2确保生成在dist文件夹中输出图像,并指定到服务器上文件的路径。

代码语言:javascript
复制
<img src={SERVERPATH + `/assets/provider-logos/....

在这种情况下,您将指定文件的实际图像路径。

票数 1
EN

Stack Overflow用户

发布于 2020-06-11 12:10:29

如果provider.providerId.toLowerCase()只知道运行时(例如从API接收到),webpack什么都不知道。

如果是provider.providerId.toLowerCase(),则可以添加require

代码语言:javascript
复制
<img src={require(`/assets/provider-logos/${provider.providerId.toLowerCase()}.png`)} alt={`${provider.providerId.toLowerCase()}-logo`} />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62324046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档