现在我想在启动app的时候,先请求服务器获取一些简单的配置信息,所以我现在main.js里修改了以下代码:
// #ifndef VUE3
.
.
.
systemInit().then(function(res) {
app.$mount();
})
.
.
.
// #endif
function systemInit() {
let s = new Promise((resolve, reject) => {
uni.showLoading({
title: '加载中...'
});
uni.request({
url: 'http://xxx.cc/api/v1/get_system/info',
method: 'GET',
success: (res) => {
// console.log('res.statusCode', res.statusCode);
if (res.statusCode === 201) {
uni.setStorageSync('app_name', res.data.app_name);
resolve(true);
reject();
} else {
resolve(false);
}
},
fail: (err) => {
// console.log('请求失败', err);
reject();
},
complete: () => {
uni.hideLoading();
}
});
});
return s;
}
但是这样以后就报错TypeError: Cannot read property 'globalData' of undefined
,getApp().globalData;
本来是可以用的,这是为什么呢,要怎么处理呢
4 个回复
8***@qq.com - 专治微信小程序疑难杂症: 微信:zicheng199907
可以换个思路,比如监听vuex里面的配置变化, 只有有值才渲染
4***@qq.com (作者)
还有别的办法吗
哈哈柚
手动关闭启动图?请求处理完成后再去关闭启动图。https://uniapp.dcloud.net.cn/tutorial/app-splashscreen.html#%E7%AD%89%E5%BE%85%E9%A6%96%E9%A1%B5%E6%B8%B2%E6%9F%93%E5%AE%8C%E6%AF%95%E5%90%8E%E5%86%8D%E5%85%B3%E9%97%ADsplash%E5%9B%BE
hhyang - 如有问题,请添加QQ1606726660 备注付费咨询
用 uni-simple-router 路由守卫不就行了,逻辑直接在 beforeEach 中写下就可以了