老师,我的收藏退出detail后再进,又成灰色的。而且缓存的键值也不是数组,而是单个元素怎么回事?

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

慕斯7114814

2018-06-27

var postsData = require('../../../data/post-data');

Page({

data: {},


onLoad: function(option) {

var postId = option.id;

this.setData({

currentPostId: postId

})

//根据编号取到文章数据,并绑定

var postData1 = postsData.postList[postId];

this.setData({

postData: postData1

})

//获取文章缓存中收藏状态‘post_collected’的值

var postsCollected = wx.getStorageSync('posts_collected')

//判断收藏状态是否为空,空则初始化其未false,非空则题去其状态

if (postsCollected) {

var postCollected = postsCollected[postId]

if (postsCollected) {

this.setData({

collected: postCollected

})

}


} else {

var postsCollected = {};

postsCollected[postId] = false;

// this.setData({

//   collected: postCollected

// })

wx.setStorageSync('post_collected', postsCollected);

}

},

// 点击收藏按钮后,图标发生相应的变化

onCollectionTap: function(event) {

// console.log(postsCollected)

var postsCollected = wx.getStorageSync('post_collected');

var postCollected = postsCollected[this.data.currentPostId];

//收藏变成未收藏,为收藏变成收藏

postCollected = !postCollected;

postsCollected[this.data.currentPostId] = postCollected;

//更新文章是否收藏的缓存数据

wx.setStorageSync('post_collected', postsCollected);

//同步数据绑定

this.setData({

collected: postCollected

})

}


})

http://img.mukewang.com/szimg/5b3371e50001feac12200115.jpg

http://img.mukewang.com/szimg/5b3371e500012a4700320019.jpg


写回答

1回答

慕斯7114814

提问者

2018-06-28

问题已解决,果然是上传缓存的问题。

前后键名不一致,后面少打一个’S‘,导致,没有数据没有setStorage成功。

贼鸡儿难受,前后花了两个小时理逻辑,以为unload之后缓存丢失。分享一下,弟兄们以后别像我一样,犯这种低级错误。哭晕在厕所。。。

0
1
精慕门5508018
是哪个缓存问题,我找了半天也没有发现哪里出错
2019-04-20
共1条回复

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

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

23866 学习 · 6899 问题

查看课程