i***@163.com
i***@163.com
  • 发布:2024-09-04 16:36
  • 更新:2024-09-04 17:52
  • 阅读:117

【报Bug】unapp在app端uni.setTabBarItem后,再触发onTabItemTap获取的不是uni.setTabBarItem的text

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

手机系统: Android

手机系统版本号: Android 14

手机厂商: 小米

手机机型: 红米k40s

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: CLI

CLI版本号: 4.24

示例代码:
先执行:uni.setTabBarItem({   
          index: 0,  
          text: '回顶部' ,  
          selectedIconPath: isTop ? 'static/tabBar/home-top.png' : '/static/tabBar/home-selected.png'  
        })  
再获取:  
onTabItemTap(e){  
    const { text } = e  
    console.error('eee', e)  
  },

操作步骤:
方法执行:  
uni.setTabBarItem({   
          index: 0,  
          text: '回顶部' ,  
          selectedIconPath: isTop ? 'static/tabBar/home-top.png' : '/static/tabBar/home-selected.png'  
        })  
点击tab执行:  
onTabItemTap(e){  
    const { text } = e  
    console.error('eee', e)  
  },

预期结果:

打印text为“回顶部”

实际结果:

打印text非“回顶部”

bug描述:

先执行:uni.setTabBarItem({   
          index: 0,  
          text: '回顶部' ,  
          selectedIconPath: isTop ? 'static/tabBar/home-top.png' : '/static/tabBar/home-selected.png'  
        })  
再获取:  
onTabItemTap(e){  
    const { text } = e  
    console.error('eee', e)  
  },

打印的文字内容不是“回顶部”,而是原来老内容

2024-09-04 16:36 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你好,请完整给一下你的代码,包含相关代码的执行周期以及说明isTop

  • i***@163.com (作者)

    下边写了个demo,你试下,onTabItemTap里面的打印,和onHide都有问题

    2024-09-04 17:53

i***@163.com

i***@163.com (作者)

<!--  -->  
<template>  
  <view>  
    <button  
      :style="{  
        marginTop: '100rpx'  
      }"  
      @click="click"  
    >点击事件</button>  
  </view>  
</template>  

<script>  
export default {  
  data() {  
    return {}  
  },   
  components: {},  
  onTabItemTap(e) {  
    const { text } = e  

    console.error('text', text)  
  },  

  onHide(){  
    uni.setTabBarItem({  
      index: 0,  
      text: '测试'   
    })  
  },  

  methods: {  
    click(){  
      const a = true  

      uni.setTabBarItem({  
        index: 0,  
        text: a ? '回顶部' : '首页',  
      })  
    }  
  }  
}  
</script>  
  • DCloud_UNI_yuhe

    你试一下再onHide中延迟一下执行


            onHide() {  
    setTimeout(()=>{
    uni.setTabBarItem({
    index: 0,
    text: '测试'
    })
    },0)
    },

    2024-09-04 18:01

  • i***@163.com (作者)

    回复 DCloud_UNI_yuhe: 先说第一个问题:click事件中设置完uni.setTabBarItem(效果确实文字已改成“回顶部”),但是onTabItemTap生命周期里面打印的还是“首页”,先定位下这个问题?

    2024-09-05 08:59

  • DCloud_UNI_yuhe

    回复 i***@163.com: 感谢您的反馈,我理解啥意思了,正在排查是啥原因导致的

    2024-09-05 10:21

  • i***@163.com (作者)

    回复 DCloud_UNI_yuhe: 好的,有方案了回一下

    2024-09-05 10:57

  • i***@163.com (作者)

    回复 DCloud_UNI_yuhe: 你好,有啥结果了吗

    2024-09-12 14:20

  • i***@163.com (作者)

    回复 DCloud_UNI_yuhe: 出结果了吗

    2024-09-24 14:03

要回复问题请先登录注册