1***@qq.com
1***@qq.com
  • 发布:2020-07-29 21:43
  • 更新:2020-07-30 10:51
  • 阅读:1746

【报Bug】急急急急急急!!!在onshow里使用 uni.getLocation,会重复触发onShow事件,结果造成了死循环

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 2.8.3

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: 其他

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
onShow() {  
      // 获取位置信息  
      // const res = await this.getLocationInfo();  
      uni.getLocation({  
        type: 'gcj02',  
        geocode: true,  
        success: (locationRes) => {  
          console.log(locationRes);  
        },  
      });  
    },  

操作步骤:

预期结果:

实际结果:

bug描述:

在onshow里使用 getLocation(还有调用plus的请求权限的方法,未测试其他),会重复触发onShow事件,结果造成了死循环

2020-07-29 21:43 负责人:无 分享
已邀请:
jxtian

jxtian

避免在 onShow 中使用需要权限的 API ,会循环触发onshow, 一次可以在onLaunch,或者到具体的页面生命周期中(非onshow)

  • 不写代码就狗带

    如果必须在onshow中使用呢?没有办法解决这个问题吧?

    2020-12-30 09:28

choin

choin

在data加一个计数变量
onshow一次这个变量就+1
那么,判断只有1才调用方法,否则不调用

chenli

chenli

如果只要执行一次可以考虑放在onLoad

[已删除]

[已删除]

前端人找资源(外包),熟悉uni、vue开发。APP、小程序、H5、PC端网站都可以做,找资源(外包),找有资源的服务端开发都行,有的话加微信13192733603。

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