【问题标题】:importing image with es6 import or require during runtime在运行时使用 es6 import 或 require 导入图像
【发布时间】:2018-11-26 14:24:09
【问题描述】:

我有这个图片文件夹:

- country
  - EN
  - FR
  - IT

我想以这种方式导入图像:

import image from "./country/{country}/test.png";

我该怎么做?

【问题讨论】:

  • 您可以使用dynamic imports导入图片
  • 这可能会回答你的问题:stackoverflow.com/questions/42118296/…
  • @AnbarasiU 您的链接内容的哪些详细信息对我有帮助?里面有很多好的/坏的提示。
  • @BoyWithSilverWings 所以我可以这样做: import json from ./locale/${language}.json) 作为动态 json 示例...?正如 destoryer 所说,导入适用于 javascript 文件,但不适用于图像..
  • 您必须先安装babel 插件。 webpack其实之前把所有东西都当成一个javascript文件,所以不算

标签: reactjs webpack ecmascript-6 require


【解决方案1】:

我将始终使用这两种方法 (require, import)。 第一件事是我以两种方式对图像进行分类:

  1. 我使用的东西可能会经常使用。
  2. 很少使用的东西。

然后我将创建一个 js 文件,其中我会导入所有第一种图像(经常使用)。当项目将加载时,它将首先执行所有导入语句,以便我的所有图像都已导入,所以每当我需要这些图像时,我都会从我为导入图像创建的实用程序中获取该图像。该实用程序文件将是这样的:

import CSK from "../assets/images/teamLogo/CSK.png";
import CSK_bw from "../assets/images/teamLogo/CSK-bw.png";

export function getImage(name) {
  switch (name) {
    case "CSK":
      return CSK;
    case "CSK_bw":
      return CSK_bw;
    }
  }

所以每当我需要图像时,我只需使用图像名称导入上述函数。

我将根据需要使用第二类图像。

【讨论】:

  • 这意味着为 10 个国家/地区导入相同的图像,然后切换大小写?那不是很贵吗?此外,为每个徽标/图像等做一个开关盒是样板,应该以不同的方式解决。
猜你喜欢
  • 2021-12-27
  • 2017-05-01
  • 2019-08-31
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 2022-08-10
  • 2023-03-11
相关资源
最近更新 更多