在网上看到了几个答案,但没有明确的解释,解决方案也不起作用。所以这就是我想要做的:
- 我有一个包含许多图像(数千张)的文件夹- 目前它保存在
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}`)} />
知道如何让这种动态导入图像在我上面描述的场景中工作吗?我认为这篇文章对其他寻找答案的人也会很有帮助。