收藏
回答

重新编译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
回答关注问题邀请回答
收藏

3 个回答

  • fireKnight
    fireKnight
    2018-11-27

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

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

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

    2018-11-27
    赞同 1
    回复 2
    • Cythia🍑
      Cythia🍑
      2018-12-05


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

      2018-12-05
      回复
    • fireKnight
      fireKnight
      2018-12-05回复Cythia🍑

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

      2018-12-05
      回复
  • 花不开
    花不开
    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
      回复
登录 后发表内容