体彩排列五 www.8r31a.com.cn 体彩排列五 > 上网技巧 > 电脑小技巧 > 微信小程序使用setData修改数组中单个对象的方...

微信小程序使用setData修改数组中单个对象的方法分析

时间:2019-02-18 10:01 作者:QQ地带 我要评论

本文实例讲述了微信小程序使用setData修改数组中单个对象的方法。分享给大家供大家参考,具体如下:
 
微信小程序已经出来挺久的时间了,之前只是在文档上粗略的看了一下,最近稍得空闲,便利用微信小程序平台写一个练手的项目,顺便学习一下小程序开发,感觉大体跟前端开发基本类似,但是因为是在微信的平台上运行,具体还是要根据小程序的规则来编写代码的,其中还是有部分的内容跟前端中常见的有所不同,于是接下来的博客里,也会顺手记录微信小程序开发过程中的一些坑,帮助后来的小程序开发者少踩一些坑,当然我踩的坑大部分都是以前的开发者踩过的,我所做的也仅仅是记录,分享。
 
习惯使用Vue或者React这类框架的开发者们,肯定不会对修改data内中数组的单个对象而烦恼,因为这些框架已经帮我们很好的处理了这个问题,并且在文档上也写的非常清楚。
 
比如要求是有一个数组存放了购物车的商品信息,而你在购物车内修改了单个商品的期望购买数量后,我们就要动态的更新这个单个对象的购买数量值,如果在小程序里我们会怎么做呢?
 
如果你按照Vue的写法来实现的话,不出意外会失败。而微信小程序也只给我们提供了一个setData方法,这个方法是使用键值对的形式对数据进行修改,例如:
 
this.setData({
  name : 'leon'
})
 
回到我们刚刚的例子里,这时候,如果你想修改单个商品的数量信息,应该怎么写?
 
首先展示一种错误的写法:
 
Page({
 data: {
  array: [{text: 'init data'}],
 },
 changeItemInArray: function (index) {
 this.setData({
 'array['+index+'].text':'changed data'
 })
 }
})
 
如果这样动态的写index,很显然,这样是无法使用在对象的key中的,我相信小程序的新手开发者可能尝试过这样的写法。
 
那么正确的写法究竟是怎么样的呢?
 
changeItemInArray: function (index) {
 // 提前准备好对象
 var item = this.data.list[index]
 item.count = 100
 // 依旧是根据index获取数组中的对象
 var key = "list["+ index + "]"
 this.setData({
 // 这里使用键值对方式赋值
  key: item 
 }, function () {})
}
 
最后,希望以后的小程序版本更新中,有更好的赋值方法。希望这篇文章能帮助到小程序的新手开发者。
 
希望本文所述对大家微信小程序开发有所帮助。

标签: 微信小程序
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告

  • 广东省发布灯具及照明装置产品等产品质量专项监督抽查结果 2019-03-20
  • 武警森林部队官兵竟喜欢雨天 原因让人泪目 2019-03-20
  • [视频]《乡村振兴战略大家谈》第五集4分钟精编版(修改版) 2019-03-20
  • 激情世界杯熬夜看球 谨防泌尿疾病“亮红牌” 2019-03-20
  • 全国公安向党和人民交上满意答卷 2019-03-19
  • 南开入伍学生畅谈习近平回信:无悔青春选择 立志报效国家 2019-03-19
  • 广州将首次曝光问题培训机构 2019-03-19
  • 延安时期中共领袖红色家风建设研究 2019-03-18
  • 张德江:必须毫不动摇坚持、与时俱进完善人民代表大会制度 2019-03-18
  • 林松添大使陪同浙江省经贸团出席中国(浙江)—南非(东开普)商务论坛 2019-03-18
  • 解锁微信10亿社交流量 小程序游戏会是那把钥匙吗 2019-03-18
  • 所以,历史注定苏联模式是他的第一次浪潮的结束,第二次浪潮的发端。 2019-03-17
  • 被审美疲劳毁掉的NBA年度狂欢 2019-03-17
  • 汪苏泷北京签售遇疯狂粉丝 半跪行礼催“生儿子” 2019-03-17
  • 国务院减负办部署开展企业负担调查评价工作 2019-03-16
  • 58| 55| 254| 669| 984| 512| 736| 477| 545| 758|