wx.getStorage不能给data里的变量赋值
发布于 5 年前 作者 pingxia 12366 次浏览 来自 问答

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

})

3 回复

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

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

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

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

另外

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

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

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

回到顶部