Setting data field "collected" to undefined is invalid.
来源:19-7 使用缓存实现文章收藏功能
慕勒6950834
2018-01-22
这是怎么肥四啊,视频里data也是空的,不知道哪里错了
写回答
9回答
-
rzwww
2018-03-03
onLoad: function (option) { var postId = option.id; this.data.currentPostId = postId; var postData = postsData.postList[postId]; this.setData({ postData: postData }); var postsCollected = wx.getStorageSync('posts_collected') var postCollected = postsCollected[postId]; if (postsCollected) { if (postCollected) { this.setData({ collected: postCollected }) } } else { var postsCollected = {}; postsCollected[postId] = false; wx.setStorageSync('posts_collected', postsCollected); } },
这样写就对了。加一个判断postCollected再setData。
1352019-03-13 -
慕斯卡2418527
2018-03-01
老师的代码不对;
我修改了一下,这个是没有问题的,供参考;
var postsCollection = wx.getStorageSync('postsCollection') if (postsCollection) { var postCollection = postsCollection[postId]; if (!postCollection) { postsCollection[postId] = false; wx.setStorageSync('postsCollection', postsCollection) } else { this.setData({ collection: postCollection }) } } else { postsCollection = {}; postsCollection[postId] = false; wx.setStorageSync('postsCollection', postsCollection); }
3112018-09-05 -
慕容5120236
2018-03-23
清除缓存之后在运行一次就行了,具体原因不知道
10 -
7七月
2018-03-03
3.2 日更新的源码已经加上了判断,大家可以下载源码看一下。
10 -
走在路上的小菜鸟
2018-02-05
同学我感觉是这里出问题了这个if判断,你想老师是对整个postsCollected做是否为空判断,并且没有初始化整个postCollected那假如这里边有一个元素了呢?判断就不会走else所以导致报你说的那个错误。触发这个错误的操作是,每当第二次单击进入某个未访问过的详情页面则会出现这个错误。
112018-06-13 -
qq_葬xs雨_0
2018-09-10
当点完第一篇文章, 在点第二篇文章时会 postid 为 undefined
00 -
慕沐8117363
2018-06-18
我也感觉,折腾死我了。这个必须要汇报下,
00 -
用户1125510
2018-04-15
post.js那个页面中打开的id没有传过去 你改成 url: "post-detail/post-detail?id=" + postId
00 -
7七月
2018-01-23
这个就是js代码有问题,你把collected绑定到了一个undefined对象上。
062018-06-13
相似问题