这样缓存wx.setStorageSync('posts_collected', {curPostId:postCollected}); ,为什么不对呢?
来源:19-7 使用缓存实现文章收藏功能
Eva__HY
2016-12-30
我在缓存数据的时候把第二个参数写成了{curPostId:postCollected}形式,发现缓存中存储的数据不正确
如图:
这样为什么不对呢?
onCollectionTap: function (event) { //点击收藏按钮时,取得缓存中的收藏状态 var postsCollected = wx.getStorageSync('posts_collected'); var curPostId = this.data.currentPostId;//取得当前文章的id //取得当前文章的收藏状态 var postCollected = postsCollected[curPostId]; //改变收藏状态 postCollected = !postCollected; //更新数据 this.setData({ collected: postCollected }) //将改变后的状态存入缓存 wx.setStorageSync('posts_collected', {curPostId:postCollected}); }
写回答
4回答
-
7七月
2016-12-31
我没有试过这种 key key value,因为没有需求会用到。也有可能 框架只能使用key value。如果value 是js对象,则会把js对象转化为json字符串。你可以试一下我的推测对不对。
00 -
7七月
2016-12-31
问题是为什么要使用key key value呢。
022016-12-31 -
7七月
2016-12-31
没有不对吧,AppData的数据显示符合你代码的设置。我们一般都是key:value。你这里改了之后变成了 key:{key:vlaue},数据绑定AppData里也相应的变成了了 key:{key:value},至于变成了Key:{key:value}后,是不是符合逻辑,这是根据你代码来定的。你可以更改相应的读取代码。
00 -
Eva__HY
提问者
2016-12-31
采取这种key1:{key2:value}的形式存储,storage面板里显示的存储信息 (第二个key) key2是一个固定的字符串 而不是0,1,2...这些postId值 这个还关系不到怎么取吧
00