在微信小程序中setData单次设置的数据不能超过1024kB,但是有时候我们需要去维护一个比较大的数组列表,比如商品列表、订单列表。如果每次都将接口返回的数据直接concat,就会出现单次设置的数据超过1024kB的情况。
这种情况下,我们可以通过以下方法解决此问题:
1、减少数组的内存,比如过滤不需要的字段和内容(治标不治本)
2、一次只更新指定的内容(治本之法),比如利用setData的局部更新功能
本文主要示例如下:(处理方法不仅限我所写的一种,只是我能想到的最好处理办法)
wx.setData(object)所传的参数对象的key可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。(即可以局部更新,只更新要更新的那一部分);
可变的键名不能直接在setData内指定进行局部更新,对于这种就需要我们自定义对象,然后将对象解构到setData的参数里面,如下:

网友评论