我有一个很好奇的疑问?为什么postsCollected建立缓存api,会获取到页面的ID和flase,为什么我在后面随便加一个建立缓存的变量全是空
来源:19-7 使用缓存实现文章收藏功能
qq_顺其自然_67
2019-03-21
2回答
-
qq_顺其自然_67
提问者
2019-03-21
不好意思,老师,我明白了。其实建立的缓存没有值,只不过点击后就有缓存了。然后下次一进去,就获取到了页面的的ID和ID的值为flase,就是在两个if后的else里面给的值,说实话:老师讲的非常好,我买了老师两个课程,我看了这个缓存api和这个收藏功能的逻辑三遍视频,感觉现在还是懵的,不过这次感觉对这小节课程清晰了很多
var postsData = require('../../../data/posts-data.js')
Page({
data : {
},
onLoad : function(option){
var postId = option.id;
console.log(postId);
this.setData({
currentPostId : postId
})
var postData = postsData.postList[postId];
console.log(postData);
this.setData({
postData : postData
//如果在onLoad方法中,不是异步的去执行一个数据绑定
//则不需要使用this.setData方法
//只需要对this.data赋值即可实现数据绑定
});
var posts = wx.getStorageSync('posts_collected');//postsCollected
console.log(posts);
// var liujie = wx.getStorageSync('we');
// console.log(liujie);
if (postsCollected) {
var postCollected = postsCollected[postId];
console.log(postCollected);//程序判断值为空,不执行
if (postCollected){
console.log(collected);//程序判断值为空,不执行
this.setData({
collected: postCollected
})
}
} else{//为什么第二次进入页面,会有一个缓存值,就是在这里判断,给的值
var postsCollected = {};
postsCollected[postId] = false;//给ID一个值为false
console.log(postsCollected);
wx.setStorageSync('posts_collected', postsCollected);//添加键名为1,值为false,到缓存里面
}
},
onColletionTap : function(event) {
var postsCollected = wx.getStorageSync('posts_collected');
console.log(postsCollected);
var postCollected = postsCollected[this.data.currentPostId];//传递的ID
//收藏变成未收藏,未收藏变成收藏
console.log(postCollected);
postCollected = !postCollected;
postsCollected[this.data.currentPostId] = postCollected;
//更新文章是否的缓存值
wx.setStorageSync('posts_collected', postsCollected);
//更新数据绑定变量,从而实现切换图片
this.setData({
collected: postCollected
})
}
})
012019-03-21 -
7七月
2019-03-21
可以贴端代码吗?然后详细说说,谢谢。
00
相似问题