onTabItemTap 在模拟上的 bug
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 都不会触发。