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

来源:19-7 使用缓存实现文章收藏功能

Eva__HY

2016-12-30

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

如图:http://szimg.mukewang.com/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});
  }


写回答

4回答

7七月

2016-12-31

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

0
0

7七月

2016-12-31

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

0
2
7七月
{}是对象字面量和object 本质上是有区别的。
2016-12-31
共2条回复

7七月

2016-12-31

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

0
0

Eva__HY

提问者

2016-12-31

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

0
0

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23755 学习 · 6896 问题

查看课程