【发布时间】:2020-09-23 06:50:58
【问题描述】:
在网上看到了几个答案,但没有明确的解释,解决方案不起作用。所以这就是我想要做的:
- 我有一个包含 许多图像(数千张)的文件夹 - 目前它保存在
src/assets/images文件夹下 - 例如,给定一个图像列表作为输入,我想动态渲染这些图像。并且不要全部导入,因为考虑到图片数量惊人,这是不可能的
这是我目前的实现方式(不起作用):
// for example
const imageList = ['img1', 'img2', 'img3' /*...so on */]
const getImagePath = (image) => {
return `../assets/images/${image}.jpg`
}
function ImagesPage() {
return (
<>
<p>Below should show a list of images</p>
{imageList.map((img) => {
return <img src={require(getImagePath(img))} />
})}
</>
)
}
从我在网上阅读的内容来看,这与 webpack 的工作方式有关,并且只有在将确切的字符串路径输入到 require 时才有效:
// This works:
<img src={require('../assets/images/img1.jpg')} />
// But all these will not work:
<img src={require(getImagePath(img))} />
const img = 'img1.jpg'
<img src={require(`../assets/images/${img}`)} />
知道如何让这种动态导入图像在我上面描述的场景中工作吗?我认为这篇文章对其他寻找答案的人也很有帮助。
【问题讨论】:
-
@Daryil 是否可以选择将图像文件夹移动到公共文件夹?
标签: javascript reactjs web webpack dynamic-import