收藏
回答

重新编译globalData被清空

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 需求 工具 1.02.1810250 2.3.2

在app.js中接口请求成功后设置globalData,然而在开发者工具上刷新重新编译,刚才设置的globalData就清空了?


对比storage,两者哪个更合适呀,感觉每次用getStorage去拿数据也怪尴尬的



// 函数体

let _this = this

this.ajax(initObj)

   .then(res => {

            _this.globalData.initInfo = res
            for (let key in res) {
                if (res.hasOwnProperty(key)) {
                    wx.setStorageSync(key, res[key])
                }

            }

})



// 全局变量

globalData: {
        initInfo: {}
    }


最后一次编辑于  2018-11-14
回答关注问题邀请回答
收藏

4 个回答

  • ᝰꫛꫀꪝ .
    ᝰꫛꫀꪝ .
    2018-11-27

    我也来留下我对globalData和strorage的理解吧,我想讲的是这两者保留时长的区别。

    前者:当小程序进入后台一定时间或系统占用资源过高后会被销毁,所谓的后台,就是用户点击小程序左上角的关闭或按HOME键离开微信。一直到小程序被销毁后,globalData就会被清空,也就是下次打开时会被初始化。

    后者:缓存可以一直存在,直到你在‘微信’-->下拉出我的小程序,或者在‘发现’-->‘小程序’,从这两处地方删除你用过的小程序,否则缓存的数据会一直在。

    2018-11-27
    有用 1
    回复 2
    • Cythia🍓
      Cythia🍓
      2018-12-05


      意思是这种方式不一定能清除掉缓存?

      2018-12-05
      回复
    • ᝰꫛꫀꪝ .
      ᝰꫛꫀꪝ .
      2018-12-05回复Cythia🍓

      打错字了,‘或者’已修改为‘否则’,这种方式可以删除数据

      2018-12-05
      回复
  • 赵志宇
    赵志宇
    19小时前

    今天也遇到这个问题, 重新编译 估计和重新进入小程序相似, 相当于刷新了一下, 全局数据肯定丢失, 在登录时 或其他地方缓存的数据需要再重新载入

    19小时前
    有用
    回复
  • biu,biu,biu
    biu,biu,biu
    2018-11-14

    编译后就会初始化数据,肯定数据会丢失的啊。不丢失只能写到缓存中

    2018-11-14
    有用
    回复 1
    • Cythia🍓
      Cythia🍓
      2018-11-14

      好的 感谢

      2018-11-14
      回复
  • ==
    ==
    2018-11-14

    看需求吧!。你如果确实需要缓存,那就用撒!!!

    2018-11-14
    有用
    回复 3
    • Cythia🍓
      Cythia🍓
      2018-11-14

      emmm 重点是globalData被清空了?为什么呀  还是我的写法不对

      2018-11-14
      回复
    • ==
      ==
      2018-11-14回复Cythia🍓

      你是想每次都有值对吧!!!  那可以每次打开可以在onlaunch里面请求接口,然后赋值给globalData

      2018-11-14
      回复
    • Cythia🍓
      Cythia🍓
      2018-11-14回复==

      成本也挺大的  哈哈 谢谢啦

      2018-11-14
      回复
登录 后发表内容