javascript - JS : How to dynamically grab variable names

标签 javascript import create-react-app

我正在使用 create-react-app 模板。

在我的一个组件中,我像这样导入多个图像的路径。

import iconAvatar from '../img/icon-avatar.png';
import iconHome from '../img/icon-home.png';
import iconVendor from '../img/icon-vendor.png';

现在假设我有一个像这样的变量,它决定使用什么图像。

let imageType = "avatar"; // or "home", or "vendor", etc.

我想根据 imageType 的值动态渲染出正确的图像(无需使用复杂的 if-else 结构)

类似于下面的内容(除了它不起作用)

<img src={"icon"}{imageType}/>

我该怎么做?

最佳答案

如果所有文件名都遵循该标准,则可以仅使用字符串连接。

<img src={'../img/icon-' + imageType + '.png'} />

或者使用 string interpolation 更干净..

<img src={`../img/icon-{$imageType}.png`} />

编辑: 使用 webpack 时,必须使用 require,并且使用 require 时,字符串连接不起作用,但字符串插值仍然有效。所以..

<img src={require(`/img/icon-{$imageType}.png`)} />

参见this answer了解更多信息。

关于javascript - JS : How to dynamically grab variable names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53311472/

相关文章:

php - 为什么我的ajax没有提交?

javascript - 正则表达式。如何从此字符串中获取多个匹配项?

javascript - 变量替换解析错误(意外标记,预期 "...")

javascript - JavaScript 中的所有大写常量。并要求。和进口

c# - 如何在 WPF 应用程序中动态导入 3D 模型

typescript - Visual Studio Code 使用 "react-jsx"作为 jsx 值与 create-react-app 的问题

reactjs - 找不到模块 : Can't resolve 'react' in 'C:\Users\USER\Desktop\test\src'

javascript - setInterval 和clearInterval 不适用于if()

javascript - AngularJS $注入(inject)器:unpr Unknown Provider Error

python - 在 Python 中检测非点相对导入的工具?