请稍等 ...
×

采纳答案成功!

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

收藏不能及时刷新看到结果问题

点击收藏图标,不能即使切换状态,一定要点击导航返回后,然后再次进入当前页面,才可以看到收藏状态变化,请问是什么原因呢?

正在回答

7回答

7七月 2016-12-06 17:59:13

源代码 打包发我看下

0 回复 有任何疑惑可以回复我~
  • 提问者 我是顽主 #1
    好的,谢谢
    回复 有任何疑惑可以回复我~ 2016-12-07 07:00:17
  • 提问者 我是顽主 #2
    问题最终原因:
            this.setData = ({
                collected:postCollected
            })
    出在 this.setData = ({这段里,把函数当成变量。
    正确写法:
    this.setData ({
                collected:postCollected
            })
    谢谢七月老师。
    回复 有任何疑惑可以回复我~ 2016-12-07 15:18:02
  • 提问者 我是顽主 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2016-12-07 15:18:09
7七月 2016-12-06 17:53:24

应该不会,清除下缓存,再重启看看

0 回复 有任何疑惑可以回复我~
  • 提问者 我是顽主 #1
    都尝试过了
    回复 有任何疑惑可以回复我~ 2016-12-06 17:56:08
7七月 2016-12-06 16:44:31

你是说状态变量改变了 但是 setdata无效?

0 回复 有任何疑惑可以回复我~
  • 提问者 我是顽主 #1
    点击的图标的时候,看打印console.log(this.setData.collected), ,即时变成true或false,只是图标一直不变呢
    回复 有任何疑惑可以回复我~ 2016-12-06 17:22:51
  • 提问者 我是顽主 #2
    setData应该也是即时生效的,否则不能即时打印出this.setData.collected
    回复 有任何疑惑可以回复我~ 2016-12-06 17:29:13
7七月 2016-12-06 15:00:29

看你描述的场景应该是js代码的问题,再检查一下,特别是onload函数里和onCollectionTap函数里

0 回复 有任何疑惑可以回复我~
小飞飞向前冲 2017-01-07 16:19:35

遇到了同样的问题, 点击收藏时, 缓存数据都能及时更新, 但是就是界面不更新, 是什么原因呢?

1 回复 有任何疑惑可以回复我~
  • 提问者 我是顽主 #1
    主要是数据绑定问题,需要看代码才知道呢
    回复 有任何疑惑可以回复我~ 2017-01-07 17:17:10
  • 小飞飞向前冲 回复 提问者 我是顽主 #2
    已经解决了, 是数据绑定写错了.
    回复 有任何疑惑可以回复我~ 2017-01-07 19:46:52
  • 我这边也是缓存数据可以及时更新,但是图片不能及时更新,返回页面以后,再点击就可以看到更新了?
    回复 有任何疑惑可以回复我~ 2017-07-26 18:32:11
小爽子 2017-01-06 14:02:08

我也遇到了这样的问题,但是this.setData({})这边我没有写错,代码没有看出问题

586f32d70001229705000175.jpg

586f32d70001b86905000428.jpg


0 回复 有任何疑惑可以回复我~
  • 已解决,this.setData({})赋值错误
    回复 有任何疑惑可以回复我~ 2017-01-06 16:01:46
  • 最后怎么解决的?我这边也是
    回复 有任何疑惑可以回复我~ 2017-07-26 18:31:06
提问者 我是顽主 2016-12-06 16:41:04

代码看不出问题呢,同时收藏触发打印的时候,状态都是即时变成true或者false的。

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

Page({

    data:{


    },

    onLoad: function (option) {

        var postId = option.id;

        this.data.currentPostId = postId;

        var postData = postsData.postList[postId];

        this.data.postData = postData;


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

        if (postsCollected) {

            var postCollected = postsCollected[postId];

            this.setData({

                collected: postCollected

            })

        } else {

            var postsCollected = {};

            postsCollected[postId] = false;

            wx.setStorageSync('posts_collected', postsCollected)


        }

    },

    onTapCollection: function (event) {

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

        var postCollected = postsCollected[this.data.currentPostId];

        postCollected = !postCollected;

        postsCollected[this.data.currentPostId] = postCollected;

        wx.setStorageSync('posts_collected', postsCollected);

        this.setData = ({

            collected:postCollected

        })

       // console.log(this.setData.collected)

       

    }

})


0 回复 有任何疑惑可以回复我~
  • 请问问题解决了吗?我也是同样问题。缓存显示变化,但图标不变化
    回复 有任何疑惑可以回复我~ 2019-05-27 19:18:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信