收藏
回答

wx.setTabBarBadger报错

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.setTabBarBadge, wx.removeTabBarBadge 微信iOS客户端 iOS 6 2.0

在当前页为非tabbar页面时 调用wx.setTabBarBadge和wx.removeTabBarBadge会报错.


这是BUG还是就是这么设计的?

如果就这么设计的, 那么就不能通过worker线程来定时刷新TabBar状态了, 感觉这API就有点鸡肋了

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

9 个回答

  • 微信技术专员 - Rex
    微信技术专员 - Rex
    2018-05-07

    目前是这么设计,可以缓存一下,tabBar页onShow的时候set上去

    2018-05-07
    有用
    回复 5
    • 李乾坤David
      李乾坤David
      2018-07-19

      你认为这个设计好吗?

      2018-07-19
      回复
    • JustinYi922
      JustinYi922
      2018-07-21

      请问在IOS手机上,设置的内容会闪一下就消失了,在开发者工具上或者安卓上不会。为啥?

      2018-07-21
      回复
    • Why not?
      Why not?
      2018-12-05

      这样岂不是每个tabbar页onShow的时候都要判断一下,有计划改吗?

      2018-12-05
      回复
    • 丘丘小羊
      丘丘小羊
      2019-07-29
      真的不好用
      2019-07-29
      回复
    • Function.prototype
      Function.prototype
      2020-12-10
      那Tab页有很多,每个都得onShow一么?
      2020-12-10
      回复
  • 白开水
    白开水
    2018-05-02

    请提供一下报错信息

    2018-05-02
    有用
    回复
  • 李乾坤David
    李乾坤David
    2018-07-19

    这个API设置真是邪门!

    2018-07-19
    有用 5
    回复
  • undefined
    undefined
    2019-10-25

    用这个试试

    setTimeout(() => {
        wx.removeTabBarBadge({ index: 2 })
    }, 0)


    2019-10-25
    有用
    回复
  • 李姓的菜
    李姓的菜
    2018-09-10

    应该是和原生交互的问题。

    解决办法就是通过localstorage去存储状态,再回退到上个Tab页面的时候,会调用onShow()方法,在onShow 和全局app.js里面的onshow。一起异步操作TabBar。

    hideTabBarRedDotByStorage(index, storageKey) {

            Storage.get('gameRecharged').then(res => {

                  wx.hideTabBarRedDot({

                    index: 3,

                  })

            }, () => {

                  wx.showTabBarRedDot({

                    index: 3,

                })

            });

    }


    2018-09-10
    有用
    回复
  • 尹志强
    尹志强
    2018-09-06

    这个设计真的太烂了。

    2018-09-06
    有用
    回复
  • all¥
    all¥
    2018-07-27

    怎么缓存?用哪种方式?

    2018-07-27
    有用
    回复
  • 彬彬
    彬彬
    2018-05-03

    在tabbar页面navigateTo一个页面, 在新页面中执行wx.setTabBarBadge, wx.removeTabBarBadge会报出该错误

    2018-05-03
    有用
    回复
  • 彬彬
    彬彬
    2018-05-03

    @白开水

    {errMsg: "setTabBarBadge:fail not TabBar page"}

    2018-05-03
    有用
    回复 2
    • 霖宏
      霖宏
      2018-06-22

      彬彬,你们目前这个问题解决了吗?

      2018-06-22
      回复
    • 霖宏
      霖宏
      2018-06-22

      你们的小程序名字叫什么,我们学习下

      2018-06-22
      回复
登录 后发表内容