微信小程序使用setData修改数组中单个对象的方法分析
文实例讲述了微信小程序使用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'
})//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:619586920
}
})
如果这样动态的写index,很显然,这样是无法使用在对象的key中的,我相信小程序的新手开发者可能尝试过这样的写法。
那么正确的写法究竟是怎么样的呢?
changeItemInArray: function (index) {
// 提前准备好对象
var item = this.data.list[index]
item.count = 100
// 依旧是根据index获取数组中的对象
var key = "list["+ index + "]"
this.setData({
// 这里使用键值对方式赋值
key: item
}, function () {})
}//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:619586920
结语
感谢您的观看,如有不足之处,欢迎批评指正。
获取资料
本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:619586920,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。