2、但在page{} 逻辑层中去使用setData后的数据就歼盯顷需要清楚,必须是setData后去调用,(氏陆this.data.xxx 或 that.data.xxx )的形式去调用
关于小程序 globalData 问题
在日常的开发中,难免有些数据是很多页面都要用到的,怎么才能设置一次就可以全局使用,可以尽量往 app.js index.js(首页) 中设置,这使得一进入小程序就设置好了全局数据
(app.js设置全局数据)
1app.js
2其他页面怎么使用?
首先引入app (let app = getApp())
直接 app.globalData.H 就可以拿到 H 全局数据
(其他页面设置全局数据)
直接 app.globalData.xxx = 想要设成全局变量的数据
使用 app.globalData.xxx 就可以拿到 xxx 全局数据
这种情况偶发,一般发生在隔一段时间之后第一次登录时。
导致问题的原因是 getUserInfo 放在了 wx.login 之前。 getUserInfo 获清和取到 iv 和 encryptedData 传给后台。wx.login调用时用户的 session_key 可能会被更新而致使旧 session_key 失效。这样后台再去解密的时候就等于在用新的 session_key 去解密旧的 session_key 加密的数据,就会报 ILLEGAL_BUFFER 错误。
正常的流程应该是:
很容易错写成在 wx.getUserInfo 的回调里再调 wx.login 拿 code 再发送给服务器,局携这样 getUserInfo 里的 data 加密用的session_key就有可能跟解密的时候的 session_key 不一致,因为 wx.login 有可能会刷新了 session_key
建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录答腊盯态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)