这篇“微信小程序如何使用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'})}})
如果这样动态的写index,很显然,这样是无法使用在对象的key中的,我相信小程序的新手开发者可能尝试过这样的写法。
那么正确的写法究竟是怎么样的呢?
changeItemInArray: function (index) { // 提前准备好对象var item = this.data.list[index] item.count = 100 // 依旧是根据index获取数组中的对象var key = "list["+ index + "]" this.setData({// 这里使用键值对方式赋值key: item}, function () {})}
以上就是关于“微信小程序如何使用setData修改数组中的单个对象 ”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。