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 都不会触发。