收藏
回答

使用自定义tabbar,在tab页中使用this.getTabBar()一直返回null,什么原因?

使用自定义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是这样调用的:

请问有大神可以解决吗?搞了一天没搞出来。

回答关注问题邀请回答
收藏

2 个回答

  • CZ
    CZ
    2020-05-24

    自我解决了,使用姿势严重不正确。根据官方文档,好像自定义的tabbar文件夹的位置和名称必须是固定的,按照文档的来,就顺利成功了。而且,官方的自定义tabbar和其他自定义组件的使用是不同的,不需要在页面中再次写出组件的标签名,就像原声的tabbar使用一样。

    还是要好好看官方文档,体会其中含义。

    2020-05-24
    有用 2
    回复 2
    • CZ
      CZ
      2020-06-29
      并且请注意,如果是官方原生的tababr,则在非tabbar页面不是自动加载tabbar,在tabbar页面会自动加载,逻辑分离很清楚。
      但是,在官方自定义tabbar中,只要不显示的指定tabbar的显示与否,其他非tabbar页面(至少有非tabbar页面跳转的非tabbar页面,已经测试)也会自动加载自定义tabbar,会导致tabbar在非tabbar页面中出现而后消失,一闪而过,根本就是bug。
      所以则时候,就需要根据页面的类别来手动显示的指定只有tabbar页面才能够显示tabbar。
      这位老兄提供了相当好的方法,亲测有效,大家可以使用。
      学习链接:https://developers.weixin.qq.com/community/develop/article/doc/000c8a90478030226cf98ea3751013
      2020-06-29
      回复
    • 开开
      开开
      2020-12-08
      为甚按照官网来来,编辑器上能正常显示自定义tabbar,但是真机调试不显示
      2020-12-08
      回复
  • 不是那个岳飞的越飞
    不是那个岳飞的越飞
    03-17

    哎呦我去,搞了一上午,还真是这个问题,路径及名称必须严格按照官方例子来。。。。

    03-17
    有用
    回复
登录 后发表内容
问题标签