自定义tabbar位置渲染错误?
发布于 5 年前 作者 ping60 10499 次浏览 来自 问答

自定义tabbar,出现显示不正常问题

首先看效果:

//代码如下
<view class="cu-bar tabbar shadow bg-white">
  <cover-view class="tab-bar-border"></cover-view>
  <cover-view wx:for="{{list}}" wx:key="index" class="action {{item.isSpecial?'add-action':''}}" data-path="{{item.pagePath}}" 
data-special="{{item.isSpecial}}" data-index="{{index}}" bindtap="switchTab">
    <block wx:if="{{item.isSpecial}}">
      <button class="cu-btn bg-green cuIcon-edit shadow"></button>
      <cover-view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</cover-view>
    </block>
    <block wx:else>
      <image src="{{selected == index ? item.selectedIconPath : item.iconPath}}"></image>
      <cover-view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</cover-view>
    </block>
  </cover-view>
</view>

这里没问题,再点击跳转时,点击化妆包,页面跳转了,但是selectedIconPath没有正常显示,也就是不变色

效果如下:

这张在首页没问题,

点了化妆包,页面跳转了,但是tabbar没变

其他的都没问题,首页跳转到我的,我的跳转到分类,都没问题,就只有化妆包有问题,跳转的代码如下,求大神看看,是系统bug么

/**
   * 组件的方法列表
   */
  methods: {
    switchTab(e) {
      const data = e.currentTarget.dataset
      const url = data.path
      const special = data.special
      if(this.data.selected == data.index){ return false;}
      if(special){
        wx.navigateTo({
          url: url,
        })
      }else {
        this.setData({
          selected: data.index
        })
        wx.switchTab({ url })
      }
      console.log('select',this.data.selected)
    // 这里特意打印了select,也正常
        }
      },
2 回复

谢邀

special时好像没设置selected?
回到顶部