Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将img标签的来源指定为组件的状态?

如何将img标签的来源指定为组件的状态?
EN

Stack Overflow用户
提问于 2019-10-28 04:51:33
回答 2查看 209关注 0票数 0

我有一个react项目,其中有一个当前正在显示图片的组件。还有一个按钮:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';

class Pokemon extends React.Component {

    state = {
        text: "./blank.png"
    };

    handleButton = (e) => {
        console.log("e: ",e);
        this.setState( {
            text: "./pikachupic.png"
        });
    };

    render() {
        return (
            <div class="container-fluid" >
                <div class="row">
                    <div class="col" style={{ background: "gray", color: "white" }}>
                        <button onClick={this.handleButton}>Show Pokemon</button>
                    </div>
                    <div class="col" style={{ background: "black", color: "white" }}>
                        <h3>Pokemon Description</h3>
                        <img src={require("./pikachupic.png")}/>
                    </div>
                </div>
            </div>
        );
    }
}

export default Pokemon;

然而,我想要做的是从一个空白图像开始,用户一单击按钮,pokemon图像就会显示出来。所以我有一个以"./blank.png“开头的状态,一旦点击按钮,它就会变成"./pikachupic.png”。我尝试更改下面这行代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img src={require("./pikachupic.png")}/>

要这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img src={require(this.state.text)}/>

但在我做了更改之后,它抛出了错误。

错误:找不到模块'./blank.png‘

将this.state.text的值赋给img标记的源的正确语法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-28 05:20:30

试着这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img src={require( `${ this.state.text }` )} />

或者这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img src={require( "" + this.state.text )} />

因为require需要一个字符串,所以不能传入原始值

票数 3
EN

Stack Overflow用户

发布于 2019-10-28 05:14:58

所有你需要做的就是使用状态值作为你的img src值,我重命名了状态变量对不起,但是我的OCD不允许它只是'text‘:D

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';

class Pokemon extends React.Component {

    state = {
        imgSrc: "./blank.png"
    };

    handleButton = (e) => {
        console.log("e: ",e);
        this.setState( {
            imgSrc: "./pikachupic.png"
        });
    };

    render() {
        return (
            <div class="container-fluid" >
                <div class="row">
                    <div class="col" style={{ background: "gray", color: "white" }}>
                        <button onClick={this.handleButton}>Show Pokemon</button>
                    </div>
                    <div class="col" style={{ background: "black", color: "white" }}>
                        <h3>Pokemon Description</h3>
                        <img src={this.state.imgSrc}/>
                    </div>
                </div>
            </div>
        );
    }
}

export default Pokemon;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58585923

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文