收藏
回答

关于自定义TabBar切换时闪烁问题,无意间发现的解决方案,不确定是否正确?

在照搬自定义TabBar的示例代码(只有2个tab)后,修改为三个及以上的tab时,除了切换涉及的2个tab外,其他的tab也会闪烁一下

示例代码中的切换tab函数如下:

methods: {
   switchTab(e) {
     const data = e.currentTarget.dataset
     const url = data.path
     wx.switchTab({url})
     this.setData({
       selected: data.index
     })
   }
 }

当修改switchTab函数如下

methods: {
   switchTab(e) {
     const data = e.currentTarget.dataset
     const url = data.path
     wx.switchTab({url})   //可能是改变样式的原因
   }
 }

即删除setData后,发现切换功能依然完整(样式和路由变化正确),且不涉及当前切换的tab也不会闪烁了; 按照正常逻辑应该是路由变化,样式不变的,但后来琢磨一下,觉得是 wx.switchTab({url})影响了selected ,但原理不太清楚,怀疑这2行都修改selected  的值,导致了闪烁,各位可以参考一下。

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

8 个回答

  • 奥古斯丁
    奥古斯丁
    2019-10-30

    代码片段https://developers.weixin.qq.com/s/2Wq9Pvml70cO

    2019-10-30
    有用 1
    回复
  • 谜
    08-04

    太牛了 帮我解决了这个问题!!

    08-04
    有用
    回复
  • 上炁
    上炁
    07-14

    最近找了很多自定义TabBar的根据官方文档实现的,放在项目里初始化可以显示,点击一个页面以后开发者工具正常,真机直接消息了,目前发现bottom:0,在有些页面没有显示在底部,改成top:0都可以显示,不知道楼主了解么,这种情况是哪个组件或者样式导致的?

    07-14
    有用
    回复
  • 謝秫秫
    謝秫秫
    04-27

    这样子第一次切换的时候还是会闪烁,以后就不会,

    04-27
    有用
    回复
  • misslucky
    misslucky
    03-30

    为啥我这这边删掉那个setData就切换不了图片了。加上setData,index选中的tab和实际页面的path是错乱的,就是我选的tab1,页面的跳转到了path1,但是tab选中的是index0,请问你碰到过这种问题吗


    03-30
    有用
    回复
  • creep
    creep
    01-19

    真的是厉害,我找了好久,终于找到你了

    01-19
    有用
    回复
  • Make it possible
    Make it possible
    2019-11-28

    闪烁的问题解决了,不过我的还会抖动和白屏,谢谢大佬

    2019-11-28
    有用
    回复
  • 奥奥
    奥奥
    2019-11-01

    大佬 我刚好也遇到了这个问题  谢谢你 我也解决了

    2019-11-01
    有用
    回复 1
    • 奥古斯丁
      奥古斯丁
      2019-11-01
      不是大佬,能帮到别人,我也很高兴!
      2019-11-01
      回复
登录 后发表内容
问题标签