一、在JS里使用(非ES6)

实现场景: 给一个空对象填充某一指定数组内的值 并随机生成数量

const fruit = ['apple', 'banana', 'orange']
let fruitInfo = {} fruitInfo = fruit.map(item => {
return {
[item]: Math.floor(Math.random() * 10)
}
})
console.log(fruitInfo)

输出:

[{apple: 2},
{banana: 1},
{orange: 9}]

这里的重点在于返回的时候 通过[]可以成功调用变量的值.

二、React setState的应用

和上面例子同理.利用[]调用变量

class Example extends PureComponent{
...
handleChange = (val, type) => {
this.setState({
[type]: val
},() => {
console.log(`当前${type}的数量: ${this.state[type]}`)
})
}
... render(){
...
return (
<Fagement>
<span>Banana: </span>
<select onChange={(e) => this.handleChange(e.target.value, 'banana')}>
<option value ="1">1</option>
<option value ="2">2</option>
</select><br /> <span>Orange: </span>
<select onChange={(e) => this.handleChange(e.target.value, 'orange')}>
<option value ="1">1</option>
<option value ="2">2</option>
</select>
</Fagement>
)
}
}

我们分别选择第二项的时候看看输出的结果

输出: .

当前banana的数量: 2
当前orange的数量: 2

动态修改JS对象的值及React setState的更多相关文章

  1. ASP.NET MVC程序中动态修改form的Action值

    在练习ASP.NET MVC时,为了实现一个小功能,POST数据至服务器执行时,需要动态修改form的action值. 下面Insus.NET列举一个例子来演示它.让它简单,明白易了解. 你可以在控制 ...

  2. js 对象的值传递

    一.变量赋值的不同 1.原始值 在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的. 2.引用值: 在将一个保存着对象内存地址的变量复制给另一个变量 ...

  3. 如何在Firebug中修改js变量的值

    在做项目的时候,经常需要调试js,要是项目环境在本地,可以直接在js代码里面设置断点或者修改变量值.但是在测试或者生产等线上环境时,再频繁登录服务器去修改js代码就显得麻烦了.项目线上环境,可以在fi ...

  4. 微信小程序 setData动态修改数据数组的值

    1.问题说明 有一组数据,用来存储图片路径,动态修改图片的路径来上传图片,而小程序JS只能通过事件获取时机和setData方法修改数据来改变view. 而用这样写的方式明显是错误的 2.解决办法 字符 ...

  5. maven 根据P参数值打包动态修改properties文件中值或一定properties

    需求:由于最近开发clover项目 ,没有使用spring,更没有使用任何框架,而使用J2EE的web工程,所以连接ZK和MongoDB.Redis等服务器需用指定properties文件, 而目前公 ...

  6. VUE 直接通过JS 修改html对象的值导致没有更新到数据中去

    业务场景 我们在使用vue 编写 代码时,我们有一个 多行文本框控件,希望在页面点击一个按钮 在 文本框焦点位置插入一个 {pk}的数据. 发现插入 这个数据后,这个数据并没有同步到 数据中,但是直接 ...

  7. 关于Javascript中通过实例对象修改原型对象属性值的问题

    Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的 ...

  8. 在vue中如何动态修改title标签的值

    建议用vue-wechat-title插件为微信动态设置标题 1,首先安装插件 cnpm install vue-wechat-title --save 2,在main.js中引入 Vue.use(r ...

  9. js对象属性值初始化封装函数

    在平常做项目的过程中,总是会遇到需要对一个已经定义过的对象的属性值进行初始化,且对象的属性值的类型有多种(string.number.array.object.boolean),为了方便自己就简单封装 ...

随机推荐

  1. LINQ交集/并集/差集/去重

    using System.Linq; List<string> ListA = new List<string>(); List<string> ListB = n ...

  2. Python3学习之路~8.5 SocketServer实现多并发

    前面几节我们写的socket都只能实现服务端与一个客户端通信,并不能实现服务端与多客户端同时通信.接下来我们就来学习一下如何实现服务端同时与多个客户端通信,即并发. Socket Server soc ...

  3. python 批量ping脚本不能用os.system

    os.system(cmd)通过执行命令会得到返回值. ping通的情况下返回值为0. ping不通的情况: 1.请求超时,返回值1 2.无法访问目标主机,返回值为 0,和ping通返回值相同   所 ...

  4. 22.C# 事件

    1.事件的含义 事件和异常类似,它们都是由对象引发,我们可以提供代码处理它们.不同的是事件并没有使用try ..catch这样的代码来处理,而是要订阅事件,订阅的含义是提供一段事件处理代码,在事件发送 ...

  5. HTML5的优点与缺点?

    优点:a.网络标准统一.HTML5本身是由W3C推荐出来的. b.多设备.跨平台 c.即时更新,提高可用性和改进用户的友好体验: d.有几个新的标签,这将有助于开发人员定义重要的内容: e.可以给站点 ...

  6. 蓝桥杯近3年决赛题之3(17年b组)

    做的时候对了2个小题,一个大题可能会拿点分数. 1. 标题:36进制 对于16进制,我们使用字母A-F来表示10及以上的数字.如法炮制,一直用到字母Z,就可以表示36进制. 36进制中,A表示10,Z ...

  7. PHP 获取一篇文章内容中的全部图片,并下载

    做个记录,在工作or面试中有可能会遇到function downImagesFromTargetUrl($url, $target_dir = null) { if(!filter_var($url, ...

  8. 将 notepad++ 添加到鼠标右键菜单 带图标

    1.打开注册表编辑器,HKEY_CLASSES_ROOT\*\shell目录点击右键.新建-->项,这里命名的项则就是鼠标右键列表里面显示的内容,这里起名为[Edit With Notepad+ ...

  9. MySQL根据出生日期计算年龄

    以前使用mysql不是很多,对mysql的函数也不是很熟悉,遇到这个问题第一时间百度搜索,搜索到这两种方法,这两种方法是排在百度第一条的博客. 方法一 SELECT DATE_FORMAT(FROM_ ...

  10. DotNetCore 部署到IIS 上

    将 DotNetCore MVC 项目成功部署到 IIS 上,记录下配置要点: 1.在 ASP.NET Core 应用中使用 Kestrel Microsoft.AspNetCore.App 元包中包 ...