首先在微信开发者工具和真机调试上都没有遇到这个问题,但在体验版上,个别用户碰到了登录成功后跳转至首页,没有做任何操作,却像是跳转页面,一直显示加载中的图标,重新进入小程序后又好了,无法复现这个问题,又是个别用户偶尔出现该问题,实在不知道是什么原因导致的,请求大佬解答~~~
我写了一个loadingPage页面,在首次注册成功后跳转到这个页面,再根据状态判断需要跳转的页面,以下是我的代码
//注册授权页
userApi.getWxPhone(self.wxAccessToken, e.detail.code).then(res => {
if (res.code === 200) {
const phone = res.data.phone_info.phoneNumber
self.$u.vuex('vuex_user_phone', phone)
userApi.addUser(phone, self.vuex_user_openid).then(res => {
if (res.code === 200) {
self.$u.vuex('vuex_token', res.data.token)
uni.navigateTo({
url: '/pages/loadingPage/loadingPage',
})
}
})
}
})
//loadingPage页面
export default {
onLoad(options) {
uni.showLoading({
title: '加载中...'
});
setTimeout(() => {
uni.hideLoading()
this.redirect()
}, 2000);
},
computed: {
...mapState(['vuex_token', 'vuex_user_phone', 'vuex_doctorId'])
},
methods: {
redirect() {
//1. 无token
const token = this.vuex_token
if (!token || token === '') {
uni.navigateTo({
url: '/pages/auth/auth'
})
} else {
userApi.getRegisterPatientList().then(res => {
const data = res.data
if (data === [] || data === null || data.length === 0) {
//没有患者存在
uni.navigateTo({
url: '/pages/login/login'
})
} else {
const passedPatientId = data.find(e => {
//如果患者绑定了医生且通过审核
return e.status === 1
})?.patientId
const waitingPatientId = data.find(e => {
//患者提交了审核但医生还未进行操作
return e.status === 0
})?.patientId
const unbindDotorPatientId = data.find(e => {
//患者提交的审核被拒绝
return e.status === null || e.status === 2
})?.patientId
if (passedPatientId) {
uni.switchTab({
url: '/pages/home/home'
})
} else if (waitingPatientId) {
// 如果已经有患者,患者等待审核中,直接取第一个患者跳转到选择医生界面
uni.navigateTo({
url: '/pages/chooseDoctorTeam/chooseDoctorTeam?patientId=' +
waitingPatientId
})
} else {
//如果已经有患者,但患者没有绑定医生,跳转到选择医生界面(此情况存在于首次注册添加患者后未绑定医生再次进入)
uni.navigateTo({
url: '/pages/chooseDoctorTeam/chooseDoctorTeam?patientId=' +
unbindDotorPatientId
})
}
}
})
}
},
}
}
b站上传了出现该问题的视频,链接(https://www.bilibili.com/video/BV14u4y1b7oJ/?spm_id_from=333.999.0.0&vd_source=1a88a795e6ce23a3ad2e210b01058246)
有预加载的数据?
视频录的太短,又没点击记录,看不出来啥
2. 如果是navigateBack回首页,onShow里干了什么
3.如果是reLaunch回首页,onLoad和onShow里取值和方法是否有先后问题