收藏
回答

页面返回后data里面通过wx.getStorage赋值的数据再次进入页面时不能刷新?

在a页面设置一个storage,然后进入b页面,通过wx.getStorage直接在data里面赋值,返回a之后修改了storage,再次进入b页面,还是之前的值

回答关注问题邀请回答
收藏

5 个回答

  • 陈宇明
    陈宇明
    2022-02-11
    1. 确定是否设置成功可以在调试器的Storage查看
    2. 如果页面没有销毁需要在onShow去获取Storage
    2022-02-11
    有用
    回复
  • 游戏人生
    游戏人生
    2022-02-11
    onShow() {
        let that = this
        wx.getStorage({
          key: 'aaa',
          success(res) {
            wx.setStorageSync('aaa', res.data)
          },
          fail(res) {
    
    
            wx.setStorageSync('aaa'"你想初始化的值")
          }
        })
    


    2022-02-11
    有用
    回复
  • dreamhunter
    dreamhunter
    2022-02-11
    // a页面
    data () {
      a:1
    }
     onShow() {
        let that = this
        wx.getStorage({
          key: 'test',
          success(res) {
            that.data.a = res.data;
            that.setData(
              {
                a: that.data.a + 1
              }
            )
            wx.setStorageSync('test', that.data.a)
          },
          fail(res) {
            wx.setStorageSync('test', that.data.a)
          }
        })
    
    
      }
    


    2022-02-11
    有用
    回复 2
    • ===
      ===
      2022-02-11
      不行哦,b页面的值还是最早那个,没有改变
      2022-02-11
      回复
    • dreamhunter
      dreamhunter
      2022-02-11回复===
      我发之前测试过了,每次进入a页面都会更新缓存中test数值。你需求不是这样么?
      还有获取缓存数据多用wx.getStorage,少用异步wx.getStorageSync,有时候开发工具可以。真机异步容易把自己弄蒙!
      2022-02-11
      回复
  • 15
    15
    2022-02-11

    你a页面的setData不能用this.data.a吧,这样不会每次进来都是1吗

    2022-02-11
    有用
    回复 4
    • ===
      ===
      2022-02-11
      a页面是第一个页面,不会销毁,测试用的
      2022-02-11
      回复
    • 15
      15
      2022-02-11回复===
      哦哦,那意思是打开控制台看Storage的值已经改变了,b页面获取的还是旧值吗?
      2022-02-11
      回复
    • ===
      ===
      2022-02-11回复15
      2022-02-11
      回复
    • 15
      15
      2022-02-11回复===
      你在b页面用楼上圣殿骑士的代码试试,每次进来都重新getStorage
      2022-02-11
      回复
  • ===
    ===
    2022-02-11
    // a页面
    data () {
      a:1
    }
    onShow () {
      this.setData{{
        a: this.data.a + 1
      }}
      wx.setStorageSync('test', this.data.a)
    }
    
    // b 页面
    data () {
      a: wx.getStorageSync('test')
    }
    
    
    2022-02-11
    有用
    回复
登录 后发表内容