使用自定义tabbar,在使用的时候,发现菜单点击会发生错乱,于是上网查了相关信息,发现是因为没有在每个tab页面中添加this.getTabBar()这一段代码,于是就加上了这段代码。如下:
onShow: function () {
console.log(this.getTabBar());
if (typeof this.getTabBar === 'function' &&
this.getTabBar()) {
this.getTabBar().setData({
selected: 1
})
}
}
但是加完这段代码后,this.getTabBar()一直返回null。
返回结果:
。
我自定义的tabbar是这样调用的:
请问有大神可以解决吗?搞了一天没搞出来。
自我解决了,使用姿势严重不正确。根据官方文档,好像自定义的tabbar文件夹的位置和名称必须是固定的,按照文档的来,就顺利成功了。而且,官方的自定义tabbar和其他自定义组件的使用是不同的,不需要在页面中再次写出组件的标签名,就像原声的tabbar使用一样。
还是要好好看官方文档,体会其中含义。
但是,在官方自定义tabbar中,只要不显示的指定tabbar的显示与否,其他非tabbar页面(至少有非tabbar页面跳转的非tabbar页面,已经测试)也会自动加载自定义tabbar,会导致tabbar在非tabbar页面中出现而后消失,一闪而过,根本就是bug。
所以则时候,就需要根据页面的类别来手动显示的指定只有tabbar页面才能够显示tabbar。
这位老兄提供了相当好的方法,亲测有效,大家可以使用。
学习链接:https://developers.weixin.qq.com/community/develop/article/doc/000c8a90478030226cf98ea3751013
哎呦我去,搞了一上午,还真是这个问题,路径及名称必须严格按照官方例子来。。。。