收藏
回答

根据身份不同更换tabbar列表。自定义tabBar更换list,在真机上总是显示更换前的数据?

  1. 在模拟器上点击切换商家,tabbar变化 2. 如图所示,变为服务列表-我的 3.点击服务列表,跳转到服务列表页面 以上全部正常。 但是,在真机上时,第一、二步正常,第三步时自动切换tabbar为更改之前的数据。点击服务列表之后,变为预约了,这是怎么搞得啊?实在不知道怎么解决了有没有人遇到过相似的问题啊?
回答关注问题邀请回答
收藏

3 个回答

  •  小骄傲项前进i
     小骄傲项前进i
    2023-01-03

    // 自定义tabba --> rindex.wxml

    <cover-view class="tab-bar" wx:if="{{showTabBar}}">
      <cover-view class="tab-bar-border"></cover-view>
      <cover-view 
        wx:for="{{isClientVersion?clientList:shopList}}" 
        wx:key="index" 
        class="tab-bar-item" 
        data-path="{{item.pagePath}}" 
        data-selectedPath="{{item.selectedIconPath}}" 
        data-index="{{index}}" 
        bindtap="switchTab"
      >
        <cover-image 
          class="cover-image" 
          src="{{selected === index ? item.selectedIconPath : item.iconPath}}">
        </cover-image>
        <cover-view 
          class="cover-view" 
          style="color: {{selected === index ? selectedColor : color}}">
          {{item.text}}
        </cover-view>
      </cover-view>
    </cover-view>
    // index.js
    var app =  getApp();
    Component({
      data: {
        showTabBar:true,
        selected: 0,
        color: "#7A7E83",
        selectedColor: "#3cc51f",
        isClientVersion:app.globalData.isClientVersion,
        clientList: [{
          pagePath: "/pages/index/index",
          iconPath: "/assets/tabBar/order-nor@2x.png",
          selectedIconPath: "/assets/tabBar/order-press@2x.png",
          text: "预约"
        },
        {
          pagePath: "/pages/message/message",
          iconPath: "/assets/tabBar/my-nor@2x.png",
          selectedIconPath: "/assets/tabBar/my-press@2x.png",
          text: "我的"
        }],
        shopList: [{
          pagePath: "/pages/managementServiceList/managementServiceList",
          iconPath: "/assets/tabBar/my-nor@2x.png",
          selectedIconPath: "/assets/tabBar/my-press@2x.png",
          text: "服务列表"
        },
        {
          pagePath: "/pages/message/message",
          iconPath: "/assets/tabBar/my-nor@2x.png",
          selectedIconPath: "/assets/tabBar/my-press@2x.png",
          text: "我的"
        }],
        realList:[]
      },
      // 组件生命周期
      lifetimes:{
        attached(){
          this.setData({
            isClientVersion:app.globalData.isClientVersion,
          })
        }
      },
      methods: {
        switchTab(e) {
          const data = e.currentTarget.dataset
          const url = data.path
          wx.switchTab({url})
        }
      }
    })
    // ‘我的’相关代码
    onShow(){
       if (typeof this.getTabBar === 'function' && this.getTabBar()) {
          this.getTabBar().setData({
            selected: 1    // 根据tab的索引值设置
          })
      }
    // ‘预约页面’相关代码
    onShow(){
       if (typeof this.getTabBar === 'function' && this.getTabBar()) {
          this.getTabBar().setData({
            selected: 0   // 根据tab的索引值设置
          })
      }
    // ‘服务列表’相关代码
    onShow(){
       if (typeof this.getTabBar === 'function' && this.getTabBar()) {
          this.getTabBar().setData({
            selected: 0    // 根据tab的索引值设置
          })
      }
        
    
    2023-01-03
    有用
    回复
  • 昵稱侢孬卟柢備註
    昵稱侢孬卟柢備註
    2023-01-03

    onTabItemTap 点击 tab 时触发,更新数据就好


    2023-01-03
    有用
    回复 3
  • 难说
    难说
    2023-01-03

    代码的问题吧 贴下代码看看

    2023-01-03
    有用
    回复 2
    •  小骄傲项前进i
       小骄傲项前进i
      2023-01-03
      大佬,看看!看看
      2023-01-03
      回复
    • 难说
      难说
      2023-01-04回复 小骄傲项前进i
      你的tabbar的切换是通过   isClientVersion:app.globalData.isClientVersion,  这个来进行切换显示的   你在真机调试出现问题的时候   去打印查看该值的一个情况   是不是其他地方有修改
      2023-01-04
      回复
登录 后发表内容