在 React 中一次导入多个图像文件的任何简单方法

SOZ*_*OZU 3 javascript reactjs

我输入以下内容来导入图像。需要一个简短的方法来做到这一点。

import banner1 from "./imgs/Banners/banner1.jpg"
import banner2 from "./imgs/Banners/banner2.jpg"
import banner3 from "./imgs/Banners/banner3.jpg"
import banner4 from "./imgs/Banners/banner4.jpg"
import banner5 from "./imgs/Banners/banner5.jpg"
import banner6 from "./imgs/Banners/banner6.jpg"
import banner7 from "./imgs/Banners/banner7.jpg"
import banner8 from "./imgs/Banners/banner8.jpg"
import banner9 from "./imgs/Banners/banner9.jpg"
.
.
.
import banner(n) from "./imgs/Banners/banner(n).jpg"
Run Code Online (Sandbox Code Playgroud)

kok*_*478 5

  • 由于您使用的是 webpack,请查看require.context。您应该能够将所有 png 文件导入到'./imgs/Banners'变量中images。然后你就可以使用图像了images["banner(n).png"]
function importAll(r) {
    let images = {};
    r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });
    return images;
}

const images = importAll(require.context('./imgs/Banners', false, '/\.jpg/'));

<img src={images["banner1.png"]} />
Run Code Online (Sandbox Code Playgroud)
  • 另一种方式,您可以使用专用于这些导入的文件:

images.js:

import banner1 from "./imgs/Banners/banner1.jpg"
import banner2 from "./imgs/Banners/banner2.jpg"
import banner3 from "./imgs/Banners/banner3.jpg"
import banner4 from "./imgs/Banners/banner4.jpg"
import banner5 from "./imgs/Banners/banner5.jpg"
import banner6 from "./imgs/Banners/banner6.jpg"
import banner7 from "./imgs/Banners/banner7.jpg"
import banner8 from "./imgs/Banners/banner8.jpg"
import banner9 from "./imgs/Banners/banner9.jpg"
.
.
.
import banner(n) from "./imgs/Banners/banner(n).jpg"

export default [
    banner1,
    banner2,
    ...
];
Run Code Online (Sandbox Code Playgroud)

然后将此数组导入到其他文件的一行中:

import banners from './images';
Run Code Online (Sandbox Code Playgroud)