子组件动态显示时Vant-sticky的height为0问题(偶现)
问题
vue项目app端,页面顶部使用Vant-sticky吸顶,内含vant-tabs。
而tabs选项与一般页面不同,需要通过接口动态获取。
会偶现,列表的最上方部份被tabs挡住的问题。
![image](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
问题代码
![image](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
原因
按上面的实现,tabs选项需要通过接口获取,没有拿到选项之前,不展示sticky的子组件,即tabs组件。
发生问题的情况下,sticky组件的height为0,即使其子组件tabs获取到了选项后展示出来了,sticky的height仍旧为0,引起了问题。
解决
挪动v-if判断。tabs获取到选项之前,整个sticky都不展示。
![image](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
Edited by zhoudanjie