Cannot create property '0' on string ''

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

qq_赤翼_0

2018-12-09

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

写回答

3回答

7七月

2018-12-10

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

0
1
qq_赤翼_0
非常感谢!
2018-12-10
共1条回复

qq_赤翼_0

提问者

2018-12-10

已经解决,谢谢。

1
3
这座城市在下雨
求解啊。。。被折腾了一天这个问题
2019-03-02
共3条回复

宝贝33

2019-07-24

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

0
2
黑子的一生
你要学会打断点,如果缓存中没有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
共2条回复

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

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

23962 学习 · 6930 问题

查看课程