示例程序逻辑有误,请修改?
来源:19-5 缓存Storage的基本用法
moonheart
2017-06-04
问题补充(选填):请详细描述你的问题,贴出相关代码或截图,并告知你的操作步骤
var postsCollected = wx.getStorageSync('posts_collected')
if (postsCollected) { //老师,这种情况,对首次进入页面详情是可以的,但没有考虑到当首次进入详情页面后,返回再入其他详情页面,这个逻辑就有些问题
var postCollected = postsCollected[postId]//如果1:false,当进入其他详情页面时, postsCollected[3],是一个空值,所以建议修改。
this.setData({
collected: postCollected
})
}
else {
var postsCollected = {};
postsCollected[postId] = false;
wx.setStorageSync('posts_collected', postsCollected);
}
老师,程序逻辑和健状性才反映其真实情况,经过思考 一个晚上修改代码如下,反复经过测试正常,特告:
var postsCollected = wx.getStorageSync('posts_collected')
if (postsCollected) {//当缓存,posts_collected,存在时
if (postsCollected[postId]) {//判断postsCollected[当前ID]的值是否存在?
var postCollected = postsCollected[postId];
this.setData({
collected: postCollected
})
} else {
postsCollected[postId] = false;
wx.setStorageSync('posts_collected', postsCollected);
}
} else {
var postsCollected = {};
postsCollected[postId] = false;
wx.setStorageSync('posts_collected', postsCollected);
}
},
2回答
-
moonheart
提问者
2017-06-04
好的,明白,谢谢!QQ群是多少?能否加入,如果在实战有问题,还得向老师您 请教。
00 -
7七月
2017-06-04
这个。。。在这一章中,我们只是初步的学习如何使用缓存,所以只是引入这个storage的用法。这个页面的逻辑并没有最终完成。这里主要是讲语法,而逻辑会在后续的章节中完善。如果说在初始章节就要考虑很多业务,那远远不只这里的一个问题。重要的是最后课程相关章节讲完后的最终代码有没有逻辑问题。
00
相似问题