react img 被自动转成base64,无法根据当前路径来动态改变值的解决办法

项目需求,需要根据当前的图片的路径值的来(加或者减)动态改变其值: state定义如下:

this.state={
            basket01:0+require("../../img/egg/egg1_00.png"),
            basket02:0+require(‘../../img/egg/egg2_00.png‘),
            basket03:0+require(‘../../img/egg/egg3_00.png‘),
            basket04:0+require(‘../../img/egg/egg4_00.png‘),
        }  

重点就是前面的数值:

render 代码如下:

<img className="egg-pen" src={this.state.basket01.substring(1,this.state.basket01.length)} />

  

计算操作的方法代码为:

add (index){
        let basket01Num = this.state.basket01.substring(0,1)
        let basket02Num = this.state.basket02.substring(0,1)
        let basket03Num = this.state.basket03.substring(0,1)
        let basket04Num = this.state.basket04.substring(0,1)
        let eggSum = this.state.eggSum
        this.setState({
            eggSum:--eggSum
        })
        if(index === 1){
            ++basket01Num
            this.setState({
                basket01:basket01Num+require(`../../img/egg/egg1_0${basket01Num}.png`)
            })
        }else if(index === 2){
            ++basket02Num
            this.setState({
                basket02:basket02Num+require(`../../img/egg/egg2_0${basket02Num}.png`)
            })
        }else if(index === 3){
            ++basket03Num
            this.setState({
                basket03:basket03Num+require(`../../img/egg/egg3_0${basket03Num}.png`)
            })
        }else{
            ++basket04Num
            this.setState({
                basket04:basket04Num+require(`../../img/egg/egg4_0${basket04Num}.png`)
            })

        }
    }

  

项目实现的效果:

通过加减来改变图片里面的鸡蛋数量

原文地址:https://www.cnblogs.com/keleyz/p/9722014.html

时间: 2024-10-16 00:51:27

react img 被自动转成base64,无法根据当前路径来动态改变值的解决办法的相关文章

在Closing事件中,将e.Cancle设置成true,则Windows无法关机和重启系统的解决办法

最近在设计一个WinForm程序的时候遇到一个bug,就是From1窗体的关闭事件中设置了e.Cancle设置成true,导致系统无法关机重启,windows7 和windows xp都是这样. 我这里设计的是当用户点击窗体的叉叉,不关闭窗体,而是最小化窗体,但当系统重启的时候,发现无关关机重启了,这里的解决办法是通过判断CloseReason的枚举值,来搞清楚到底是用户自己关闭或是系统引起的窗体关闭.关键代码如下: private void Form1_FormClosing(object s

使用EJS脚本将字符串转换成Base64编码

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/VVfyim 由于EJS脚本解释器是完美支持 ECMA-262 标准的,因此EJS脚本是JavaScript的真超集. 说了一段废话后,我其实是想说我在网上copy了一段JS支持的将字符串转换成Base64编码的代码,不知出处,这里斗胆将代码贴出,如有侵权请联系删除. var Base64 = {     // 转码表     table : [             'A', 'B

delphi将图片转换成Base64编码函数

{************************************************************************** 名称: BaseImage 参数: fn: TFilename 返回值: string 功能: 将fn文件转换成Base64编码,返回值为编码 **************************************************************************} function BaseImage(fn: str

利用反射自动封装成实体对象

利用此方法的时候需要传递的参数的名称,必须以行号结尾,去掉行号就是属性名称,比如页面传递name+rowNo,那么实体对象的属性名应该为name.代码如下 //获取页面数据,自动封装成bean对象 public List getObjectList(Class clazz,String[] rowNos) throws Exception{ List objList = new ArrayList(); for(int i=0;rowNos!=null && i<rowNos.len

Java实现文件自动打包成zip并下载的代码

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipOutputStreamDemo { public static void main(String[] args) throws Exception { by

js绝对地址图片转换成base64的方法

//将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas'), ctx = canvas.getContext('2d'), img = new Image(); //为了解决跨域,可以直接img.crossOrigin=''就能解决图片跨域问题 img.crossOrigin = 'xes'; img.onload = function(){ canvas

将文件编码成base64通过AJAX上传

使用AJAX是无法直接上传文件的,一般都是新建个iframe在它里面完成表单提交的过程以达到异步上传文件的效果. 如此做可以达到比较好的浏览器兼容性,不过代码量会比较大,即使是使用了文件上传插件,例如plupload. 如何能达到灵活的程度呢,能像普通的AJAX提交表单数据那样将文件看成是普通表单参数来对待就好了. 灵光一闪,利用javascript的FileReader对象将文件编码成base64再传服务器不就行了么~ 开始动手,丰衣足食. 前端对文件进行base64编码并通过ajax向服务器

游戏资源自动转换成Lua表

关于这个问题,几年前已经做过一个工具,自动导出成一个c++的struct,然后用vector存储这些数据,然而在实践中发现在遇到多层嵌套时,这种数据表现是非常乏力的.比如掉落表会配多个掉落物,每个掉落物都有数量.概率等.那么最好是将物品ID,数量,概率设置为一个struct然后用一个vector存储,而不是用drop_id1, drop_id2, drop_num1,drop_num2来表示,类似这样的情况是很常见的.后来工作中用Lua比较多,也曾写过一个将表导出lua的工具,对上述问题的解决方

java_js_method实现输入小写字母自动转化成大写的代码实例

方法一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con