uni-app京东小程序 onTabItemTap无法触发问题

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app京东小程序 onTabItemTap无法触发问题

示例代码:

代码如附件所示。

操作步骤:

在转换为京东小程序后,用两个最简单的hello world页面,使用在tabbar切换页面时onTabItemTap方法无法触发。

预期结果:

通过tabBar切换页面时触发onTabItemTap方法

实际结果:

通过tabBar切换页面时无法触发onTabItemTap方法

bug描述:

用两个最简单的hello world页面,使用在tabbar切换页面时onTabItemTap方法无法触发。

附件


11 回复

我测试了下,在原生京东小程序上就没有触发,请向京东小程序反馈。


老师你好,我这边是试用京东原生的语言写出来的是可以的,代码已添加到附件JD_onTabItemTapDemo.zip,这个我用京东的IDE上虽然没有触发到这个方法,但是的手机上扫码试加载后是可以触发这个方法的,日志上是可以看到了,麻烦老师再帮忙看下。

回复 6***@qq.com: uni-app编译后的代码手机扫码是否可以触发?

回复 YUANRJ:uniapp编译到京东后手机扫码也不行,京东原生开发的是可以的。

回复 YUANRJ: 老师这个咱们复现了吗?现在有解决方案不?

目前已复现该问题,正在联系同事进行排查

嗯嗯,好的。

你好,麻烦问下咱们这个问题修复的怎么样了,大概啥时能修复?

回复 6***@qq.com: 现在排查出是京东小程序那边引擎的组件构造器不支持onTabItemTap,已经向他们反馈,有结果会通知您

回复 HRK_01: 你好,麻烦问下这个问题修复好了吗?

在 uni-app 开发京东小程序时,onTabItemTap 事件无法触发的问题可能由以下几个原因引起。以下是一些常见的排查和解决方法:


1. 确认页面是否为 TabBar 页面

onTabItemTap 事件只有在 TabBar 页面中才会触发。请确保当前页面已经配置在 pages.jsontabBar 中。

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/user/user",
      "style": {
        "navigationBarTitleText": "我的"
      }
    }
  ],
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/user/user",
        "text": "我的"
      }
    ]
  }
}

2. 检查页面生命周期函数

确保在页面的 script 中正确定义了 onTabItemTap 生命周期函数。

export default {
  onTabItemTap(item) {
    console.log('TabBar 被点击', item);
  }
}

3. 确认京东小程序环境

京东小程序的 onTabItemTap 事件可能与微信小程序的行为略有不同。请确保你使用的是京东小程序的开发工具,并且代码在京东小程序环境中运行。


4. 检查 uni-app 版本

确保你使用的 uni-app 版本支持京东小程序的 onTabItemTap 事件。可以尝试更新 uni-app 到最新版本。

npm install @dcloudio/uni-app@latest

5. 调试工具

使用京东小程序的开发者工具进行调试,查看是否有错误日志或警告信息。可以通过以下步骤调试:

  • 打开京东小程序开发者工具。
  • 在控制台中查看是否有相关错误。
  • 使用 console.log 输出调试信息。

6. 检查页面跳转逻辑

如果页面是通过 uni.switchTabuni.reLaunch 跳转的,确保跳转的目标页面是 TabBar 页面。

uni.switchTab({
  url: '/pages/index/index'
});

7. 京东小程序特定问题

京东小程序可能存在一些特定问题或限制。可以查阅京东小程序的官方文档,确认 onTabItemTap 事件的支持情况。


8. 尝试其他生命周期函数

如果 onTabItemTap 仍然无法触发,可以尝试使用其他生命周期函数(如 onShow)来替代实现类似功能。

export default {
  onShow() {
    console.log('页面显示');
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!