uni-app 支付宝小程序tab第一个页面onShow无效
uni-app 支付宝小程序tab第一个页面onShow无效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
操作步骤:
<template>
<view>
我是门店列表
</view>
</template>
<script>
export default {
created(){
console.log(my.SDKVersion);
},
onShow(){
console.log(11111111111)
},
onLoad(e) {
console.log(3213213)
},
data() {
return {};
}
}
</script>
<style lang="scss">
</style>
预期结果:
输出版本号,11111111111 3213213
实际结果:
输出版本号
bug描述:
在支付宝小程序编译运行后tab的第一个页面 onLoad 和onShow生命周期执行无效但是created mounted 等可以,其余tab页面正常onShow onLoad
更多关于uni-app 支付宝小程序tab第一个页面onShow无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 支付宝小程序tab第一个页面onShow无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在支付宝小程序中,tabBar的第一个页面确实存在生命周期执行的特殊情况。根据支付宝小程序的官方文档和实际运行机制,第一个tab页面在初始化时不会触发onShow和onLoad,而是直接执行onLoad和onShow的合并逻辑,表现为只执行created等更早的生命周期。
这是因为支付宝小程序的启动机制中,第一个tab页面作为首页加载时,其onShow和onLoad可能被跳过或合并执行。从你的代码看,created中打印版本号正常,但onShow和onLoad未触发,这符合支付宝小程序的预期行为。
解决方案:
- 将初始化逻辑移至
created或mounted:对于第一个tab页面,建议将onLoad和onShow中的初始化代码(如数据请求)移到created或mounted中执行。例如:created() { console.log(my.SDKVersion); this.loadData(); // 替代onLoad中的逻辑 }, mounted() { this.handleShow(); // 替代onShow中的逻辑 }

