赞
踩
最近小编开发用uni-app开发H5页面的时候遇到一个问题,不知道其他小伙伴有没有遇到onLaunch和onload异步问题。欢迎大家留言一起探讨。
按着正常的逻辑来说启动H5页面先触发onLaunch,随后触发onLoad,其实不是,在触发onLaunch的同时也在触发要进入页面的onLoad,所以导致在onLoad里面拿不到onLaunch里的数据。
解决方法,小编也查了资料,提供给大家参考
- //第一步:在uni-app项目,main.js中
-
-
- Vue.prototype.$onLaunched = new Promise(resolve => {
- Vue.prototype.$isResolve = resolve
- })
-
-
-
-
- //第二步:在app.vue onLaunch中调用接口
-
-
- onLaunch(){
- this.$u.post('/loginAdmin',{//这是调用的接口
- workCard: params['userid']
- }).then((res)=>{
-
- this.$isResolve()//调用下
- }).catch((res)=>{
- //出息信息错误
- this.$Router.replace({name:"noautority"}) //未授权页面
- })
- }
-
-
- //第三步 :在要进入页面的onLoad生命周期
- //这里要写成同步的需要加async
-
- async onLoad(){
-
- await this.$onLaunched
- //以下在进行业务逻辑操作
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。