关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 m0_62833091 2024-06-09 13:31
采纳率: 27.3%
浏览 1 首页/
小程序
/ 用户授权,glodalData.userInfo为undefined? 微信小程序 app.js异步问题,在我的页面中,可以拿到app.globalData的信息,但是app.globalData.userInfo拿不到,下面是全部代码,要怎么改?求帮助
app.js代码:
// app.js
App({
onLaunch:async function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力');
} else {
wx.cloud.init({
env: 'yingshiji-1g4z5k3lc74cf9e2',
traceUser: true,
});
}
this.globalData = {};
await this.loadUserInfo();
console.log('是否有openid',this.globalData.openid);
console.log('是否有用户信息',this.globalData.userInfo);
},
async loadUserInfo(){
var that = this;
//获取用户的openid
let useropenid = await wx.cloud.callFunction({
name:'logins',
})
console.log('获取openid',useropenid);
that.globalData.openid = await useropenid.result.appid;
return await wx.cloud.database().collection('login').where({
_openid:'that.globalData.openid'
}).get().then(res=>{
console.log(res);
that.globalData.userInfo = res.data[0];
})
},
is_login(){
console.log(this.globalData.userInfo);
if (this.globalData.userInfo) {
return true
} else {
return false
}
},
})
login WXML代码
login .js代码
```javascript
// pages/login/login.js
const app = getApp();
const db = wx.cloud.database();
Page({
data: {
},
onLoad(options) {
},
// 获取头像
getAvatar(event) {
console.log(event.detail.avatarUrl); //临时头像路劲地址
let avatarUrl = event.detail.avatarUrl; //临时地址
let suffix = /\.[^\.]+$/.exec(avatarUrl)[0];
wx.cloud.uploadFile({
cloudPath: 'loginImages/' + new Date().getTime() + suffix,
filePath: avatarUrl //上传到云端的路劲,
}).then(res => {
console.log(res.fileID);
this.setData({
avatarUrl: res.fileID
})
})
},
login(event) {
var that = this;
console.log(event.detail.value.nickName);
let nickName = event.detail.value.nickName;
// let avatarUrl = that.data.avatarUrl;
if (!nickName) {
wx.showToast({
title: '请填写昵称',
icon: 'error'
})
return
}
if (!this.data.avatarUrl) {
wx.showToast({
title: '请上传头像',
icon: 'error'
})
return
}
console.log(app.globalData.openid);
db.collection('login').where({
_openid: app.globalData.openid
}).get().then(res => {
console.log(res)
if (res.data.length == 0) {
//添加记录到数据库
db.collection('login').add({
data: {
num: Date.now(), //!QQ号
avatarUrl: that.data.avatarUrl,
nickName: nickName
},
success(res) {
console.log(res)
wx.showToast({
title: '登陆成功',
})
setTimeout(function () {
wx.navigateBack({})
}, 1500)
}
})
} else {
console.log("用户已存在")
that.setData({
userInfo: res.data[0]
})
}
})
}
})
我的页面user-center。WXML代码:
```xml
用户名:{{nickName}}
用户ID:dfd9765490
点击登录
登录获取更多权限
余额:¥ 0 元
充值
我发布的信息
我的页面user-center.js代码:
// pages/user-center/user-center.js
const app = getApp();
const db = wx.cloud.database();
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log('是否有app信息',app.globalData)// 有app的信息
console.log('是否有用户信息',app.globalData.userInfo)// 获取用户信息和openid为undefined
console.log(app.is_login());
if(app.is_login()){
this.setData({
userInfo: app.globalData.userInfo,
avatarUrl: app.globalData.userInfo.avatarUrl,
nickName: app.globalData.userInfo.nickName
})
}
},
onuserInfo(){
wx.navigateTo({
url:'/pages/login/login'
})
},
})
展开全部
收起
写回答
好问题
0 提建议
追加酬金
关注问题
微信扫一扫 点击复制链接 分享 邀请回答
编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0
(可追加 ¥500)
¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付
二维码出错
点击刷新
支付金额
15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意
《付费问题酬金结算规则》 结题 再想想 删除 再等等