收藏
回答

onTabItemTap 在模拟上的 bug

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 工具 1.0.0 2.0.0

Page 里面定义了 onTabItemTap 事件,但是并不会被触发,代码片段在 WAService.js


WeixinJSBridge.on("onTabItemTap", (0,
l.surroundByTryCatch)(function(e, t) {
    if (C.hasOwnProperty(t)) {
        var n = C[t]
          , r = n.page;
        if ("undefined" != typeof __wxConfig && __wxConfig.tabBar && __wxConfig.tabBar.list && __wxConfig.tabBar.list[e.index]) {
            var o = {
                index: e.index,
                pagePath: (__wxConfig.tabBar.list[e.index].pagePath || "").replace(/\.html$/, ""),
                text: __wxConfig.tabBar.list[e.index].text
            };
            if (o.pagePath !== n.route)
                return;
            r.hasOwnProperty("onTabItemTap") && ((0,
            l.info)("Invoke event onTabItemTap in page: " + n.route),
            l.safeInvoke.call(r, "onTabItemTap", o))
        }
    }
}));


问题在于 o.pagePath !== n.route 的判断。o 代表要跳转的 tab,n 是当前 tab,这里应该是 ===,而不是 !==,造成的现象是只有在当前 tab 点击当前 tab 才会触发事件,点击其他 tab 都不会触发。

最后一次编辑于  2018-05-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 生命過客
    生命過客
    2018-06-26

    楼主分析到位,官方还没解决吗?真机上是正常的,开发工具上有这个问题。

    2018-06-26
    赞同
    回复
  • 丰少爷
    丰少爷
    2018-07-09

    这么久了,官方也既没解决,也没个说法?!顶上去

    2018-07-09
    赞同
    回复
  • 青阳魂(Busy)
    青阳魂(Busy)
    2018-08-01

    其实是文档也写的有问题 行吧 我现在默认 是 点击就触发 不管是不是在当前页了


    真的是不知道 到底是真机还是模拟器是对的

    2018-08-01
    赞同
    回复
  • Ðμαi、
    Ðμαi、
    2018-08-13

    我的在开发者工具和真机上都不执行,写的console.log真机调试也不输出

    2018-08-13
    赞同
    回复