javascript - 基于变量加载几个图像

标签 javascript reactjs

我正在尝试根据此处的值加载图像(使用 React 和 JavaScript)。 让我向您展示我目前拥有的东西。

this.state.categories.map((value, index) => {
     return <div className={categoryStyle.column}
                 key={index}
                 onClick={() => {this.setCategory(value)}}>
            <img src={this.getImage(value)}/>
     </div>
}) : <Spinner/> }
getImage = (category) => {
    switch(category) {
        case "people":
            return "./img/people.png"
        case "planets":
            return "./img/planets.png"
        case "films":
            return "./img/films.png"
        case "species":
            return "./img/species.png"
        case "vehicles":
            return "./img/vehicles.png"
        case "starships":
            return "./img/starships.png"
        default:
            return console.log("No image available")
    }
}

该值包含类别名称,例如人物或电影。 当我 checkin 我的 Html 时,图像 src 实际上显示了/img/people.png,但图像未加载。

我在这里做错了什么?此外,是否有更推荐的更动态地执行此操作的方法?

最佳答案

你可以在 src 属性中添加一个 require:

<img src={require(this.getImage(value))} />

但是我建议您用简单的 if else 替换您的 switch 函数(require 可能无法正确评估您的 console.log)。

关于javascript - 基于变量加载几个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59225858/

相关文章:

javascript - Firefox 的 MediaRecorder 接口(interface)每两秒只提供一次新的视频数据

javascript - 如何使图像适合框架,保持纵横比和缩略图列表的中心

javascript - 登录表单不提供在 Chrome 上保存密码的功能

javascript - 使用Webpack、ES6进行React,简单组件不显示

javascript - string.substring(1) 在具有相同 html 的不同网站上给出不同的结果

javascript - 使用 javascript 数组显示特定的 HTML div

javascript - Internet Explorer (IE) 中的脚本挂起并且对空缓存不负责任(在缓存中工作正常)

javascript - 向下滚动时无法将拖动的 div 拖放到图像的一部分

javascript - 无法更改 React 子组件中的下拉值

reactjs - react ionic 5 : How to pass object from App component to Tab component