我正在调用OpenWeatherMap API,并获得iconID
之类的响应01d
或04n
。我已经在/src
的本地目录下设置了所有图像,并将它们命名为01d.png
,04n.png
等。
我已经通过iconID
将此props
传递给了Current.js
组件,但我不知道如何显示具有特定ID名称的图像。
E.G:
如果服务器的响应等于01d.png
,我想显示图像01d
PS:
props.icon
存储来自服务器的数据,它的确是好数据。
import React from 'react';
import classes from './Current.module.css';
const current = (props) => {
return (
<div className={classes.Current}>
<p>Temperature: {props.temperature}</p>
<p>Minimum Temperature: {props.minimumTemperature}</p>
<p>Maximum Temperature: {props.maximumTemperature}</p>
<p>Humidity: {props.humidity}</p>
<img src={'../../icons/' + props.icon + '.png'}[enter image description here][1] alt={props.icon}/>
</div>
)
}
export default current;
这是我的文件夹结构的屏幕截图
答案 0 :(得分:2)
首先确保图像文件夹不在src
之外,然后加载类似图像
<img src={require(`../../icons/${props.icon}.png`)} />
或者,如果只有一个图像ID传递给组件,并且不需要映射,则可以在组件渲染时延迟加载它。
const current = (props) => {
const pic = React.lazy(()=>import(`../../icons/${props.icon}.png`))
......
然后用img
和Suspense
包装<img src={pic} />
标记