采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
缓存被清除后,收藏按钮就失效了。if也使用了 let collected=ydCollected[this.data._yid] if(collected === undefined){ collected = false }
这是因为清空缓存后,缓存里并不存在posts_collected。所以在onLoad里面首次获取posts_collected时,其实返回的是一个空的字符,并不是一个对象。所以我们要在onLoad里面首次获取posts_collected时判断一下,如果不存在那就设置posts_collected初始值为{},这样就不会报错了。
onLoad: function (options) {
const postData = postList[options.pid]
this.data._pid = options.pid
const postsCollected = wx.getStorageSync('posts_collected') || {}
this.data._postsCollected = postsCollected
let collected = postsCollected[this.data._pid]
if (collected === undefined) {
//如果是undefined,则说明文章从来没有被收藏过
collected = false
}
this.setData({
postData,
collected
})
简洁实用的方法,给你点个赞
好聪明,从没想到 或运算符可以这样用!
登录后可查看更多问答,登录/注册
历时4年,学员20000+,缔造高口碑的精品课程
16.2k 32
4.1k 24
1.8k 22
4.0k 22
1.7k 16
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号