uView
uView copied to clipboard
u-tabs 在嵌套 u-popup 时,底部滑块失效
@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事件里。 这两种方案只在微信小程序里验证过,其他平台没试 不过还是希望官方在下一版时能够处理一下这个问题
这些方案都涉及到源码的更改,对以后的更新不友好。 所以我决定了自己写一个tabs,转折方案是使用class>on开启高亮项的显示
延迟赋值即可。
展开时不跟随解决了,切换时会乱掉
在tab @change 方法时调用一下init()