node.js - React JS 的路径名字符串问题
问题描述
根据路径名的存储方式,我无法在 Node JS 中正确加载文件。
{
Object.entries(LEGEND).map(([key, value]) => {
return (
<div key={"layout-editor-element-" + key}>
<Card
className="text-center"
align="center"
tag="a"
title={value.desc}
onClick={() => this.generateItem(key)}
>
<Card.Body>
<Card.Img
variant="top"
src={require(`../assets/icons/simpleText-Icon.png`)}
className="card-images"
/>
<Card.Text>{value.title}</Card.Text>
</Card.Body>
</Card>
</div>
);
});
}
工作正常,但更改为
<Card.Img variant="top" src={require (value.iconName)}
给我一个控制台错误
未捕获的错误:找不到模块“../assets/icons/simpleText-Icon.png”
地图中的其他值加载正常,即使我声明类似
const pathname = "../assets/icons/simpleText-Icon.png"
然后使用
<Card.Img variant="top" src={require(pathname)} className="card-images"/>
我犯了同样的错误。
它是相同的路径名字符串,但是当您尝试替换常量时显然会发生一些变化,尽管我对它可能是什么感到困惑。
有没有人有想法,或者一些解决方法/替代方法可以让它根据地图有选择地加载图像?
解决方案
打包程序无法处理动态要求。
您可以做些什么来解决这个问题,而不是将字符串存储../assets/icons/simpleText-Icon.png
在 中value.iconName
,您可以将完整的 require 表达式存储为键的值:
iconName: require('../assets/icons/simpleText-Icon.png')
推荐阅读
- javascript - 如何为此类定义 Google Closure Compiler externs
- python - 如何使用按钮为 python 的单选按钮选择值?
- pandas - 在 Dask 中为数据框获取 PARTITION_ID
- excel - 根据单元格中的比较值分配段的宏
- c++ - 使用犰狳编译 C++ 错误时出现链接器错误
- python - 在 Python 中从排列索引到排列矩阵
- python - 在 Python 中将嵌套的 Json 文件转换为 CSV 文件
- javascript - 使用 Octokit 设置 webhook
- oracle - 我的触发器没有工作,他的时间有问题
- xml - XSLT,获取最频繁的而不是第一个元素