postsCollectd[postId] = false; 执行报错

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

_卡卡C

2016-12-28

6-6节,点击第二个detail,else里面,一执行到postsCollectd[postId] = false;就提示

Cannot create property '1' on string '' Page Pages/posts/post-detail/post-detail catch error in lifeCycleMethod onLoad function

TypeError: Cannot create property '1' on string ''


写回答

2回答

7七月

2016-12-28

仔细看一下,每个变量,这个问题就是你的变量 不是对象,而是一个字符串。建议 对着代码一步步的来,或者下载源代码对比一下。

0
1
_卡卡C
非常感谢!是我敲错单词了
2016-12-28
共1条回复

_卡卡C

提问者

2016-12-28

var postsData = require('../../../data/posts-data.js')
Page({
  data: {
  },
  onLoad: function (options) {
    var postId = options.id;
    this.data.currentPostId = postId;
    // this.data.postData = postData;
    this.setData({
      postData: postsData.postList[postId]
    })

    var postsCollectd = wx.getStorageSync('posts_collected');
    if (postsCollectd) {
      var postCollected = postsCollectd[postId];
      this.setData({collected : postCollected})
    }else{
      var postsCollected = {};
      postsCollectd[postId] = false;
      wx.setStorageSync({key:'posts_collectd',data:postsCollectd});
    }
  },
  onCollectedTap : 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});
  }
})


0
1
华灯初上丶
老哥你是怎么解决的呀,我试了一个下午了,求指点下,谢谢
2017-12-14
共1条回复

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

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

23866 学习 · 6899 问题

查看课程