Cannot create property '0' on boolean 'true';

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

墨香书虫

2019-12-30

此处报错,断点之后发现是在点击事件的地方出错。仔细排查,发现:postsCollected,postCollected两个对象搞混。
有点尴尬,调试工具也不会报错,不能明确到哪里错了。对象命名以后得尽可能可以较好的区分,避免代码写出。

写回答

2回答

墨香书虫

提问者

2019-12-30

/**
   * 生命周期函数--监听页面加载
   */
onLoad: function(options) {
var postId = options.id
this.data.currentPostId = postId
console.log(postId)
var postData = postsData.postList[postId]
console.log(postData)this.setData({
postData: postData
})

var postsCollected = wx.getStorageSync('posts_collected')
if(postsCollected){
var postCollected = postsCollected[postId]
if(postCollected){
this.setData({
collected: postCollected
})
}else {
var postsCollected = {};
postsCollected[postId] = false;
wx.setStorageSync('posts_collected', postsCollected)
}
}

onCollectionTap: function (event) {
var postsCollected = wx.getStorageSync('posts_collected');
var postCollected = postsCollected[this.data.currentPostId];
//收藏变成为收藏,未收藏变成已收藏
postCollected = !postCollected;
postsCollected[this.data.currentPostId] = postCollected;
//更新文章是否收藏的缓存值
wx.setStorageSync('posts_collected', postsCollected);

//更新数据绑定变量,从而实现切换图片
this.setData({
collected: postCollected
})
},


1
0

7七月

2019-12-31

这是js的特点,很多都不会报错的。写代码还是要仔细一点,可以用List做变量结尾

0
0

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

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

23866 学习 · 6899 问题

查看课程