javascript - 我可以动态调用导入的文件名吗?

标签 javascript reactjs

我正在制作一个 7 天预测 react 应用程序。我有一个图像文件夹,其中有 28 个天气类型图标,分为白天和夜间版本。这些图像像这样导入到组件中(为简洁起见,我将只显示 4 个选项):

import {
    dayclear, daycloudy,

    nightclear, nightcloudy
} from '../images'

根据调用此组件时的天气类型,我尝试动态命名图像源。有没有办法动态连接对象名称?例如:

<img src={this.props.timeOfDay + this.props.weather} alt="Weather Image" />

我正在寻找该源最终成为导入图像的对象名称。

最佳答案

尝试将图像存储在这样的对象中:

const IMAGES = {
  dayclear,
  nightclear,
  ...
}

然后创建一个天气名称

const { timeOfDay, weather } = this.props
const weatherName = `${timeOfDay > condition ? 'day' : 'night'}${weather}`

最后将其添加到图像的src中:

<img src={IMAGES[weatherName]} alt="Weather Image" />

关于javascript - 我可以动态调用导入的文件名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67732375/

相关文章:

javascript - 如何使用PhoneGap下载并保存文件(APK)到android SD卡中?

javascript - React 路由器改变路径但不渲染组件

reactjs - React - 在 DOM 渲染时显示加载屏幕?

node.js - 如何在 Cookie 上指定 SameSite 和 Secure(使用 axios/React/Node Express)

reactjs - 推送查询参数时如何防止getServerSideProps再次运行?

javascript - 找不到模块 : Can't resolve '@emotion/react' in 'E:\frontend\node_modules\@mui\styled-engine'

javascript - 持有另一个对象的数组

javascript - 在 jquery ajax 中以不同方式上传数组中的文件

javascript - 迭代枚举时如何排除命名空间函数?

javascript - WordPress jQuery 函数