收藏
回答

wx.getStorage不能给data里的变量赋值

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.getStorag 微信iOS客户端 Android 6.6.6 1.7.1





var openid;


Page({

data: {

openid:""

}


onShow: function () {

var that = this;

  wx.getStorage({

      key: 'openid',

      success: function (res) {

          console.log(res.data);//有值的

          that.data.openid = res.data;

          openid = res.data;

      }

  })

}

console.log(that.data.openid): 显示

console.log(openid):  显示undefined


})

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

4 个回答

  • 施❤Math
    施❤Math
    2019-01-28

    在我理解异步获取是发出一个获取localStorage的请求,之后具体什么时候执行不知道。

    它的success函数是异步获取成功后才执行的。

    这个问题可以通过该用wx.getStorageSync()解决。

    另外

    that.data.openid = res.data;   //这句应改为 that.setData({openid:res.data;}) , 否则无法修改数据

    openid = res.data;  // 这句可能是定义了局部变量。所以在函数外不能引用。


    2019-01-28
    有用 1
    回复
  • 刘正辉
    刘正辉
    2022-06-23

    我也遇到同样问题 修改为同步获取就可以了 异步回调函数里找不到data

    2022-06-23
    有用
    回复
  • 赵青山
    赵青山
    2018-04-23

    success是回调函数,触发时间最晚

    2018-04-23
    有用
    回复
  • 王琦
    王琦
    2018-04-23

    你这是异步获取,你改成同步的试一下

    2018-04-23
    有用
    回复 1
    • ···
      ···
      2021-10-01
      同步也不可以
      2021-10-01
      回复
登录 后发表内容