老师,我的收藏退出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
})
}
})
1回答
-
慕斯7114814
提问者
2018-06-28
问题已解决,果然是上传缓存的问题。
前后键名不一致,后面少打一个’S‘,导致,没有数据没有setStorage成功。
贼鸡儿难受,前后花了两个小时理逻辑,以为unload之后缓存丢失。分享一下,弟兄们以后别像我一样,犯这种低级错误。哭晕在厕所。。。
012019-04-20
相似问题