vant tab页签中内容上下滚动后, 再切换tab页签时滚动位置总是同步一致。。。
在移动端页面使用vant tab标签栏组件时发现,当在第一个页签内容(列表)中,上下滑动到某个位置时,切换第二个页签,发现其内容也是滑动到同样位置了,反之亦然,一开始以为是动态加载数据影响的,换成本地静态数据测试依然是这样,这是不是组件的bug,页签之间切换,各自内容应该是相对独立展现的,求教如何解决
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(4)
鞋纸虽美,但不合脚ㄋ〞2022-09-19 01:19:29
估计出现这个问题的原因是页签内容元素没有设置 key 值,参考 vue 文档:
key
的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。
在切换 tab 之后,vue 复用了之前的页签内容元素,所以会出现自动滚动到之前位置的问题。
有两种解决办法:
- 可以试着在页签内容元素上加上唯一的 key,比如当前选中的 tab 的 id 或者 idx 之类的。这样切换 tab 之后,由于页签内容元素的 key 和之前不一样,vue 就会重新渲染这个元素。
- 切换 tab 时候,手动滚动到顶部
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
试下 overflow-anchor: none