1、原因
Tab 挂载的时候会初始化并获取自身宽度,如果处于隐藏状态下,Tab 是获取不到自身宽度的,因此底部条的位置没法正确计算
2、解决方案-vue2
当数据回显之后,在从新渲染tab组件。
onShow() {
// 方法一
// this.showTap = false;
// this.$nextTick(() => {
// this.showTap = true // 解决uview u-tab,下划线异常
// });
// 方法二
this.$refs.tabs.resize();
},
3、解决方案-vue3
// #ifndef MP-ALIPAY
// 具体适用哪些平台见文档
let home_tabs = ref<any>(null);
uni.onWindowResize((res)=>{
// console.log('监听屏幕变化res,重置tabs的下划线位置',res);
if(home_tabs.value) home_tabs.value.resize();
})
// #endif