uni-app onTabItemTap 在App(自定义组件模式)下不生效
uni-app onTabItemTap 在App(自定义组件模式)下不生效
示例代码:
onTabItemTap(e) {console.log(“test~~~~”)}
## 操作步骤:
- 点击底部的tabbar onTabItemTap不生效
## 预期结果:
- 会打印出test~~~
## 实际结果:
- 不会打印出test~~~
## bug描述:
- onTabItemTap在页面中点击底部的tabbar不生效
| 信息类别 | 信息内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC系统版本号 | MacBook Air (M1, 2020) |
| HBuilderX类型 | Alpha |
| HBuilderX版本 | 3.2.6 |
| 手机系统 | iOS |
| 手机系统版本号 | IOS 14 |
| 手机厂商 | 苹果 |
| 手机机型 | Iphone11 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app onTabItemTap 在App(自定义组件模式)下不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app onTabItemTap 在App(自定义组件模式)下不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在自定义组件模式下,onTabItemTap 确实存在不触发的问题。这通常是由于自定义组件模式与普通模式的生命周期差异导致的。
解决方案:
-
使用
uni.onTabBarMidButtonTap全局监听(推荐): 在App.vue的onLaunch中全局监听 tabbar 点击事件:onLaunch: function() { uni.onTabBarMidButtonTap(() => { console.log('tabbar 被点击'); }); } -
改用页面生命周期监听: 在页面的
onShow生命周期中判断页面路径:onShow() { const pages = getCurrentPages(); const currentPage = pages[pages.length - 1]; if (currentPage.route === '你的页面路径') { console.log('页面显示,可能是tabbar切换触发'); } } -
检查 tabbar 配置: 确保
pages.json中正确配置了 tabBar,且当前页面在 tabBar 的 list 中。 -
切换编译模式: 尝试在
manifest.json中关闭自定义组件模式:"app-plus": { "usingComponents": false }

