微信小程序使用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 () {}) }
最后,希望以后的小程序版本更新中,有更好的赋值方法。希望这篇文章能帮助到小程序的新手开发者。
希望本文所述对大家微信小程序开发有所帮助。
相关文章
BootstrapTable refresh 方法使用实例简单介绍
本文就bootstrapTable refresh 方法如何传递参数做简单举例说明,非常不错,具有参考借鉴价值,需要的朋友参考下吧2017-02-02详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
本文通过两种方法给大家介绍了webpack打包时排除其中一个css、js文件,或单独打包一个css、js文件的方法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-10-10javascript实现html页面之间参数传递的四种方法实例分析
这篇文章主要介绍了javascript实现html页面之间参数传递的四种方法,结合实例形式较为详细的分析了JavaScript实现页面之间参数传递的常用技巧,需要的朋友可以参考下2015-12-12JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
块级作用域: 大多数使用c语言语法的语言都有块级作用域,而JavaScript没有块级作用域。2010-11-11
最新评论