我有一个很好奇的疑问?为什么postsCollected建立缓存api,会获取到页面的ID和flase,为什么我在后面随便加一个建立缓存的变量全是空

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

qq_顺其自然_67

2019-03-21

写回答

2回答

qq_顺其自然_67

提问者

2019-03-21

不好意思,老师,我明白了。其实建立的缓存没有值,只不过点击后就有缓存了。然后下次一进去,就获取到了页面的的ID和ID的值为flase,就是在两个if后的else里面给的值,说实话:老师讲的非常好,我买了老师两个课程,我看了这个缓存api和这个收藏功能的逻辑三遍视频,感觉现在还是懵的,不过这次感觉对这小节课程清晰了很多

var postsData = require('../../../data/posts-data.js')

Page({

    data : {


    },

    onLoad : function(option){

      var postId = option.id;


      console.log(postId);

      this.setData({

        currentPostId : postId

      })

      var postData = postsData.postList[postId];

      console.log(postData);


      this.setData({

        postData : postData

        //如果在onLoad方法中,不是异步的去执行一个数据绑定

        //则不需要使用this.setData方法

        //只需要对this.data赋值即可实现数据绑定

      });


      var posts = wx.getStorageSync('posts_collected');//postsCollected

      console.log(posts);

      // var liujie = wx.getStorageSync('we');

      // console.log(liujie);

      if (postsCollected) {

        var postCollected = postsCollected[postId];

        console.log(postCollected);//程序判断值为空,不执行

        if (postCollected){

          console.log(collected);//程序判断值为空,不执行

          this.setData({

            collected: postCollected

          })

        }

      } else{//为什么第二次进入页面,会有一个缓存值,就是在这里判断,给的值

var postsCollected = {};

         postsCollected[postId] = false;//给ID一个值为false

        console.log(postsCollected);

        wx.setStorageSync('posts_collected', postsCollected);//添加键名为1,值为false,到缓存里面

      }


    },

    onColletionTap : function(event) {

      var postsCollected = wx.getStorageSync('posts_collected');

      console.log(postsCollected);

      var postCollected = postsCollected[this.data.currentPostId];//传递的ID

      //收藏变成未收藏,未收藏变成收藏

      console.log(postCollected);

      postCollected = !postCollected;

      postsCollected[this.data.currentPostId] = postCollected;

      //更新文章是否的缓存值

      wx.setStorageSync('posts_collected', postsCollected);

      //更新数据绑定变量,从而实现切换图片

      this.setData({

        collected: postCollected

      })

    } 

})


0
1
qq_顺其自然_67
说错了,是下次进去页面,就添加了缓存的数据,不是点击了收藏按钮后
2019-03-21
共1条回复

7七月

2019-03-21

可以贴端代码吗?然后详细说说,谢谢。

0
0

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

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

23866 学习 · 6899 问题

查看课程