uView icon indicating copy to clipboard operation
uView copied to clipboard

u-tabs 在嵌套 u-popup 时,底部滑块失效

Open hairyf opened this issue 4 years ago • 4 comments

image

hairyf avatar Jan 12 '21 06:01 hairyf

@TuiMao233 看了一下tabs的源码,问题出在tabs组件的getTabRect()这个方法,this.getTabRect()是被init调用的,调用init的地方只有两处1:外部传入的list改变时 2:tabs组件mounted的时候。恰好popup组件那个时候还没弹出来。所以getTabRect()取得的每个tab的位置信息都为0导致后面tab切换时滑块不动(滑块的滚动是根据tab位置计算的)。

有两个方案解决这个问题 1:在popup的open事件里手动调用一下tabs的init方法就可以了,不过这个方法会导致popup弹出来时看到滑块滑动了一下。 2:tabs组件current和list属性的赋值放到popup的open事件里。 这两种方案只在微信小程序里验证过,其他平台没试 不过还是希望官方在下一版时能够处理一下这个问题

footygoodman avatar Mar 07 '21 14:03 footygoodman

这些方案都涉及到源码的更改,对以后的更新不友好。 所以我决定了自己写一个tabs,转折方案是使用class>on开启高亮项的显示

hairyf avatar Mar 18 '21 01:03 hairyf

延迟赋值即可。

stxiaohan avatar May 10 '21 14:05 stxiaohan

展开时不跟随解决了,切换时会乱掉

在tab @change 方法时调用一下init()

YANGFEI007 avatar Nov 20 '23 07:11 YANGFEI007