4***@qq.com
4***@qq.com
  • 发布:2023-09-21 08:46
  • 更新:2023-09-22 21:59
  • 阅读:202

如何在启动app的时候先请求服务器获取一些数据

分类:uni-app

现在我想在启动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 undefinedgetApp().globalData;本来是可以用的,这是为什么呢,要怎么处理呢

2023-09-21 08:46 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com - 专治微信小程序疑难杂症: 微信:zicheng199907

可以换个思路,比如监听vuex里面的配置变化, 只有有值才渲染

4***@qq.com

4***@qq.com (作者)

还有别的办法吗

hhyang

hhyang - 如有问题,请添加QQ1606726660 备注付费咨询

用 uni-simple-router 路由守卫不就行了,逻辑直接在 beforeEach 中写下就可以了

要回复问题请先登录注册