setStorageSync
在B页面存储一条对象
....
var item={user:'123',name:'李四'}
wx.setStorageSync('item',item)
...
在A页面取出这条对象添加并到A页面的数组中,
.....
var list =[]
var item=wx.getStorageSync('item')||''
if(item){
list.push(item)
}
....
返回B页面继续存储一条新的对象,
...
var item={user:'456',name:'张三'}
wx.setStorageSync('item',item)
...
在回到A页面取出这条对象添加到上次操作的数组中,
...
var item=wx.getStorageSync('item')||''
if(item){
list.push(item)
}
...
结果 数组长度不变,第一次添加到数组中的数据被第二次添加的数据替换了
...
list=[ {user:'456',name:'张三'} ]
...
问题 怎么实现 添加而不是替换
B页面存储之前getStorageSync一下,然后新增的push进去
...
var item={user:'456',name:'张三'}
var list=[]
var _item=wx.getStorageSync('item')
list.push(_item)
wx.setStorageSync('item',item)
...
为什么不在一开始就把数组设置到缓存里,那么你在A页面获取的时候,就是
let list = wx.getStorageSync("item", item);
B页面
let list = wx.getStorageSync("item");
list.push({user:'456',name:'张三'});
wx.setStorageSync("item", list);
当初是这么想的,每次存取数组,数据少一点还行,数据太多了会影响到程序的运行速度、和性能吧,对象可能会好多了。
如果你是需要保存在本地,以后还需要读取的,那么你放到缓存里得是一个数组
B页面先getStorageSync旧的数据,再push后setStorageSync。
不是替换了,是你原来的list中的数据没了。