采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这是怎么肥四啊,视频里data也是空的,不知道哪里错了
onLoad:
function
(option) {
var
postId = option.id;
this
.data.currentPostId = postId;
postData = postsData.postList[postId];
.setData({
postData: postData
});
postsCollected = wx.getStorageSync(
'posts_collected'
)
postCollected = postsCollected[postId];
if
(postsCollected) {
(postCollected) {
collected: postCollected
})
}
else
{
postsCollected = {};
postsCollected[postId] =
false
;
wx.setStorageSync(
, postsCollected);
},
这样写就对了。加一个判断postCollected再setData。
顶一个,实用
这部分代码折腾我太久了,照视频代码敲一直是undefined 感谢解决!
为什么是加判断?
老师的代码不对;
我修改了一下,这个是没有问题的,供参考;
postsCollection = wx.getStorageSync(
'postsCollection'
(postsCollection) {
postCollection = postsCollection[postId];
(!postCollection) {
postsCollection[postId] =
, postsCollection)
collection: postCollection
postsCollection = {};
, postsCollection);
源码具体哪里不对?可否说一下?
老师判断了postCollected是不是存在,却没有判断postsCollected[postId]是不是存在,所以当postsCollected[postId]不存在时postCollected 会被赋值为undefined ,然后导致setData的时候会报错
我调试了一下代码。又回想了以下,这里不判断也是没问题的。即使collected是 undefined,这个状态也是false的,不会有影响。但是我这里确实没有报错。
清除缓存之后在运行一次就行了,具体原因不知道
3.2 日更新的源码已经加上了判断,大家可以下载源码看一下。
同学我感觉是这里出问题了这个if判断,你想老师是对整个postsCollected做是否为空判断,并且没有初始化整个postCollected那假如这里边有一个元素了呢?判断就不会走else所以导致报你说的那个错误。触发这个错误的操作是,每当第二次单击进入某个未访问过的详情页面则会出现这个错误。
请问您是怎么解决这个问题
当点完第一篇文章, 在点第二篇文章时会 postid 为 undefined
我也感觉,折腾死我了。这个必须要汇报下,
post.js那个页面中打开的id没有传过去 你改成 url: "post-detail/post-detail?id=" + postId
这个就是js代码有问题,你把collected绑定到了一个undefined对象上。
我也出现过这问题,可是代码一样,视频中怎么没出现问题
找到问题了吗?我也出现了,但是单步了半天也没找到错误,我运行老师的程序同样有问题。
怎么解决啊
登录后可查看更多问答,登录/注册
4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!
15.4k 32
3.3k 24
1.5k 22
3.3k 22
1.1k 16
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号