井
  • 发布:2019-05-30 17:43
  • 更新:2020-02-28 18:19
  • 阅读:8679

【已解决】uni.switchTab之后刷新的问题

分类:uni-app

详细问题描述

uni.switchTab({  
            url: '/' + url,  
            success: (res) => {  
                const currentPages = getCurrentPages()  
                console.log(currentPages[0]);  
                currentPages[0].onLoad({  
                    ...currentPages[0].options  
                })  
            }  
        })

微信小程序,uni.switchTab中的success函数执行所切换页面的onLoad函数,在微信开发者工具的编译模式是正常可以执行onLoad函数,但是用开发者工具的真机调试,就不能执行onLoad函数了。真机运行也不能执行。

重现步骤

[步骤]

  1. 微信小程序有两个tabBar:page1,page2.
  2. 打开page1
  3. 打开page2
  4. 在page2中执行上述代码,switchTab到page1

[结果]
switchTab后,page1的onLoad函数,在微信开发者工具是可以执行的,但是在真机不会执行。

[期望]
switchTab后,page1的onLoad函数,在微信开发者工具和真机运行都可以执行。

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX

[IDE版本号]
1.9.9.20190522

[windows版本号]
Windows10 1903(18362.145)

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
微信小程序

[运行端版本号]
微信开发工具版本RC v1.02.1905081
手机微信版本 安卓v7.0.4

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建

[编译模式是老模板模式还是新的自定义组件模式?]
新的自定义组件模式

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-05-30 17:43 负责人:无 分享
已邀请:
nicepainkiller

nicepainkiller - 最爱 dcloud

只是 uni.switchTab 之后 因为之前的界面 没有销毁 onload oncreate 都不会执行;因为 他只会执行一次(之前执行过了);

ZGH0709

ZGH0709

uni.switchTab 的 success 指的是 方法调用成功,并不是页面加载成功。所以,你调用的 onLoad 并不一定是 tabBar1 页面的 onLoad。

ZGH0709

ZGH0709

如果你要在显示 tabBar1 页面做一些操作,可以通过其他方式实现,比如 onShow

  • (作者)

    我把switchTab改成reLaunch也是可以实现我需要的功能的。我只是提个bug,这个优先级不高

    2019-06-05 09:51

  • ZGH0709

    回复 : 理解下这句话: uni.switchTab 的 success 指的是 方法调用成功,并不是页面加载成功。所以,你调用的 onLoad 并不一定是 tabBar1 页面的 onLoad。

    2019-06-05 10:20

  • (作者)

    回复 ZGH0709: 了解,虽然没有测试过。但是好像是有道理的

    2019-06-06 09:50

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