请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Cannot create property '0' on string ''

Cannot create property ‘0’ on string ‘’;at pages/posts/post-detail/post-detail page onColletionTap function
按照老师的代码写的,还是出现这个问题。看了其他人的问题都是if-else的问题,但是这部分我按照视频已经写了。
图片描述
图片描述

正在回答

3回答

7七月 2018-12-10 00:01:26

肯定还是代码写错了,下源码对比下吧。这个不太容易看出了,调试一下。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_赤翼_0 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-12-10 11:31:11
提问者 qq_赤翼_0 2018-12-10 11:30:59

已经解决,谢谢。

1 回复 有任何疑惑可以回复我~
  • 兄弟,请问这个怎么解决的呢?我也遇到这个问题了。
    回复 有任何疑惑可以回复我~ 2019-02-19 21:41:27
  • 怎么解决的。。求解
    回复 有任何疑惑可以回复我~ 2019-03-02 16:52:09
  • 求解啊。。。被折腾了一天这个问题
    回复 有任何疑惑可以回复我~ 2019-03-02 19:06:14
宝贝33 2019-07-24 20:38:19

我也是这个错误,楼主改好了吗。哪里错了。我要疯了。

0 回复 有任何疑惑可以回复我~
  • null
    回复 有任何疑惑可以回复我~ 2020-10-04 12:30:56
  • 你要学会打断点,如果缓存中没有post-collects对象的话 ,那么你拿到的post-collects就是一个空的字符串'',你给一个空字符串添加动态属性数字,就报这个错误了,老师讲的时候没有出现这种情况,所以我们还需要多加一个判断,这是我的代码:
     onCollect() {
        //取消收藏
        const postCollect = this.data._postCollect;
        //如果缓存中postCollect对象没有值,那么是'',所以要考虑这种情况
        if (postCollect == '') {
          const postCollect = {}; //新建一个空对象
          postCollect[this.data._postId] = true;
          wx.setStorageSync('post-collects', postCollect)
          this.setData({
            collected: true
          })
        } else {
          //判断当前文章有没有被收藏
          const collected = postCollect[this.data._postId];
          //直接取反,不要傻乎乎的if else。。。。
          postCollect[this.data._postId] = !collected;
          wx.setStorageSync('post-collects', postCollect)
          this.setData({
            collected: !collected
          })
        }
      },
    回复 有任何疑惑可以回复我~ 2020-10-04 12:32:35
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号