缓存读取问题

来源:8-13 showToast接口的应用

慎走刀口

2022-03-10

posts-detail.js页面,onCollect函数,在用户点击“收藏按钮”后,需要在缓存中读取现有的缓存posts_collected。

  1. 按照老师的视频一步步操作是没有问题的,因为之前已经在缓存中写入了数据;
  2. 但是如果消除掉所有的缓存,直接点击,就会出现错误: TypeError: Cannot create property ‘0’ on string ‘’
  3. 我逐行分析了脚本,个人觉得是在读取空缓存时,是一个空字符串,导致的TypeError;
  4. 于是我想着把类型改为Object,但试了几种方法都没成功:
    • JSON.parse(str) 提示:Unexpected end of JSON input,于是又想办法格式化字符串,因为本身就是个空字符串,我也很奇怪:
    • var obj = eval(’(’+str+’)’); 被禁了,不能使用
    • .replace(/\ufeff/g, “”) 的方式也不行

不知道是不是我的思路错了,加之卡太久了,希望老师能提点一下,不知道是不是有一步我错过了。
目前的我程序逻辑里,posts_collected是需要先读取,再写入新值,并没有初始化的步骤(也不能初始化,缓存会清空)。

写回答

1回答

7七月

2022-03-10

不用改变类型,加一个判断,判断如果是空,就可以了。

0
3
慎走刀口
非常感谢!
2022-03-10
共3条回复

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

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

23866 学习 · 6899 问题

查看课程