请稍等 ...
×

采纳答案成功!

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

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

正在回答 回答被采纳积分+3

2回答

提问者 qq_顺其自然_67 2019-03-21 21:41:19

不好意思,老师,我明白了。其实建立的缓存没有值,只不过点击后就有缓存了。然后下次一进去,就获取到了页面的的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 回复 有任何疑惑可以回复我~
  • 提问者 qq_顺其自然_67 #1
    说错了,是下次进去页面,就添加了缓存的数据,不是点击了收藏按钮后
    回复 有任何疑惑可以回复我~ 2019-03-21 21:42:33
7七月 2019-03-21 21:19:00

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信