代码错误//app.j App({ globalData:{ user:{}, }, onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ // env 参数说明: // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 // 如不填则使用默认环境(第一个创建的环境) env: 'cloud1-2gx2lyqna1e2c7de', traceUser: true, }) wx.cloud.callFunction({ name: 'login', data: {}, success: res => { console.log('[云函数] [login] user openid: ', res.result.openid) this.globalData.openid = res.result.openid }, fail: err => { console.error('[云函数] [login] 调用失败', err) } }) } this.globalData = { openid:'', } }, })
时间: 2024-02-14 07:18:24 浏览: 106
蓝牙app开源代码,支持蓝牙4.2,5.0
5星 · 资源好评率100%
这段代码中的问题是,`globalData` 对象中的 `openid` 属性被定义在了 `onLaunch` 函数中,导致在其他地方无法访问到该属性。正确的做法是将 `openid` 属性定义在 `globalData` 对象中,而不是在 `onLaunch` 函数中,例如:
```
App({
globalData: {
openid: '',
user: {}
},
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
env: 'cloud1-2gx2lyqna1e2c7de',
traceUser: true,
})
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
console.log('[云函数] [login] user openid: ', res.result.openid)
this.globalData.openid = res.result.openid
},
fail: err => {
console.error('[云函数] [login] 调用失败', err)
}
})
}
}
})
```
这样,其他地方就可以通过 `getApp().globalData.openid` 来访问到 `openid` 属性了。
阅读全文