ge
ge
  • 发布:2020-06-07 10:21
  • 更新:2020-12-24 09:11
  • 阅读:898

【报Bug】A页面跳转B页面时为什么先执行B页面的onload方法

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1909

HBuilderX类型: 正式

HBuilderX版本号: 2.7.9

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 小米9SE

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

A页面跳转B页面,B页面onload里调用请求接口数据,所以请求前加了showloading提示,请求完成后关闭showloading, 当从A跳转时,页面还没有转到B,showloading就已经在A页面弹出来了,

预期结果:

页面完成跳转后加载

实际结果:

页面未跳转就已经加载

bug描述:

A页面跳转B页面时为什么先执行B页面的onload方法
onload写了
uni.showLoading({
title:'加载中...',
})
页面还没转过去,showloading就已经执行了

2020-06-07 10:21 负责人:无 分享
已邀请:
ge

ge (作者)

???
就这样?连人问都没有?
用apicloud的时候不会超过2小时就有官方专人回复协助解决,口口声声比人家做的好,就这样?

1***@qq.com

1***@qq.com

老哥把你代码放出来,或者写个dome复现一下。

  • ge (作者)

    说的已经很明确了,A页面通过uni.navigateTo跳转B页面,

    uni.navigateTo({

    url: 'b'

    })

    B页面加载数据的时候用uni.showLoading等待数据返回,跳转的时候,页面未转过去,uni.showLoading就已经出现了

    2020-06-12 10:05

ge

ge (作者)

应该是点击300ms延迟的老问题,但是作为一个框架竟然没有解决方案?
难道非要用
setTimeout(() => {
xxx
}, 300);
这样方法去解决?也是醉了

  • 996上班族

    很同意你的说法,但是没办法,基于uniapp,项目层面只能这样解决吧。

    2020-06-12 14:08

  • 996上班族

    另外文档中对navigateTo有complete的回调,你可以试试能不能写在这里。我没试过,目前我的项目功能为主,产品看不出就算了。

    2020-06-12 14:13

W小姐

W小姐

好像跳转页面有一个默认的showLoading,并不是onload里的,你也可以使用onready呀

  • 996上班族

    onReady基于说明文档:监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 也不一定能解决楼主的问题

    2020-06-12 14:10

2***@qq.com

2***@qq.com

有什么好的解决方案吗?

  • ge (作者)

    setTimeout(() => {

    xxx

    }, 300);

    2021-03-30 14:06

该问题目前已经被锁定, 无法添加新回复