详细问题描述
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函数了。真机运行也不能执行。
重现步骤
[步骤]
- 微信小程序有两个tabBar:page1,page2.
- 打开page1
- 打开page2
- 在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]
3 个回复
nicepainkiller - 最爱 dcloud
只是 uni.switchTab 之后 因为之前的界面 没有销毁 onload oncreate 都不会执行;因为 他只会执行一次(之前执行过了);
ZGH0709
uni.switchTab 的 success 指的是 方法调用成功,并不是页面加载成功。所以,你调用的 onLoad 并不一定是 tabBar1 页面的 onLoad。
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