请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这样缓存wx.setStorageSync('posts_collected', {curPostId:postCollected}); ,为什么不对呢?

我在缓存数据的时候把第二个参数写成了{curPostId:postCollected}形式,发现缓存中存储的数据不正确

如图:https://img1.sycdn.imooc.com/szimg//5866284400017e8f09160080.jpg

这样为什么不对呢?

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});
  }


正在回答 回答被采纳积分+3

4回答

7七月 2016-12-31 14:45:31

我没有试过这种 key key value,因为没有需求会用到。也有可能 框架只能使用key value。如果value 是js对象,则会把js对象转化为json字符串。你可以试一下我的推测对不对。

0 回复 有任何疑惑可以回复我~
7七月 2016-12-31 14:43:45

问题是为什么要使用key key value呢。

0 回复 有任何疑惑可以回复我~
  • 提问者 Eva__HY #1
    额 我看第二个参数可以是object  所以就懒得在前面存一下 直接就把{curPostId:postCollected}写那儿了  发现不对  之前群里有位同学说object 和 我这个{}不是一回事儿  是酱子么
    回复 有任何疑惑可以回复我~ 2016-12-31 14:50:07
  • 7七月 #2
    {}是对象字面量和object 本质上是有区别的。
    回复 有任何疑惑可以回复我~ 2016-12-31 15:45:13
7七月 2016-12-31 01:59:12

没有不对吧,AppData的数据显示符合你代码的设置。我们一般都是key:value。你这里改了之后变成了 key:{key:vlaue},数据绑定AppData里也相应的变成了了 key:{key:value},至于变成了Key:{key:value}后,是不是符合逻辑,这是根据你代码来定的。你可以更改相应的读取代码。

0 回复 有任何疑惑可以回复我~
提问者 Eva__HY 2016-12-31 14:41:09

采取这种key1:{key2:value}的形式存储,storage面板里显示的存储信息 (第二个key) key2是一个固定的字符串 而不是0,1,2...这些postId值  这个还关系不到怎么取吧

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信