在移动端页面使用vant tab标签栏组件时发现,当在第一个页签内容(列表)中,上下滑动到某个位置时,切换第二个页签,发现其内容也是滑动到同样位置了,反之亦然,一开始以为是动态加载数据影响的,换成本地静态数据测试依然是这样,这是不是组件的bug,页签之间切换,各自内容应该是相对独立展现的,求教如何解决
在移动端页面使用vant tab标签栏组件时发现,当在第一个页签内容(列表)中,上下滑动到某个位置时,切换第二个页签,发现其内容也是滑动到同样位置了,反之亦然,一开始以为是动态加载数据影响的,换成本地静态数据测试依然是这样,这是不是组件的bug,页签之间切换,各自内容应该是相对独立展现的,求教如何解决
估计出现这个问题的原因是页签内容元素没有设置 key 值,参考 vue 文档:
key
的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。
在切换 tab 之后,vue 复用了之前的页签内容元素,所以会出现自动滚动到之前位置的问题。
有两种解决办法:
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
试下 overflow-anchor: none