示例程序逻辑有误,请修改?

来源:19-5 缓存Storage的基本用法

moonheart

2017-06-04

问题补充(选填):请详细描述你的问题,贴出相关代码或截图,并告知你的操作步骤

 var postsCollected = wx.getStorageSync('posts_collected')

        if (postsCollected) { //老师,这种情况,对首次进入页面详情是可以的,但没有考虑到当首次进入详情页面后,返回再入其他详情页面,这个逻辑就有些问题

            var postCollected = postsCollected[postId]//如果1:false,当进入其他详情页面时, postsCollected[3],是一个空值,所以建议修改。

            this.setData({

                collected: postCollected

            })

        }

        else {

            var postsCollected = {};

            postsCollected[postId] = false;

            wx.setStorageSync('posts_collected', postsCollected);

        }

老师,程序逻辑和健状性才反映其真实情况,经过思考 一个晚上修改代码如下,反复经过测试正常,特告:

var postsCollected = wx.getStorageSync('posts_collected')

    if (postsCollected) {//当缓存,posts_collected,存在时

      if (postsCollected[postId]) {//判断postsCollected[当前ID]的值是否存在?

        var postCollected = postsCollected[postId];

        this.setData({

          collected: postCollected

       })

       } else {

        postsCollected[postId] = false;

        wx.setStorageSync('posts_collected', postsCollected);

      }

    } else {

      var postsCollected = {};

      postsCollected[postId] = false;

      wx.setStorageSync('posts_collected', postsCollected);

    }

  },


写回答

2回答

moonheart

提问者

2017-06-04

好的,明白,谢谢!QQ群是多少?能否加入,如果在实战有问题,还得向老师您 请教。

0
0

7七月

2017-06-04

这个。。。在这一章中,我们只是初步的学习如何使用缓存,所以只是引入这个storage的用法。这个页面的逻辑并没有最终完成。这里主要是讲语法,而逻辑会在后续的章节中完善。如果说在初始章节就要考虑很多业务,那远远不只这里的一个问题。重要的是最后课程相关章节讲完后的最终代码有没有逻辑问题。

0
0

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

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

23867 学习 · 6899 问题

查看课程