Vant: tab和list配合导致多次加载

Created on 3 Jun 2019  ·  4Comments  ·  Source: youzan/vant

Describe the bug
同一页面使用tab创建多个List时,如果每个tab的List都被创建,在其中一页上划加载时,如果滚动距离符合其他tab页List的触发距离,会触发其他tab页List的加载,看issue以前有人提过,回复说已修复,但是实测还存在

Environment

  • Device: PC
  • Browser: chrome
  • Vant Version: 2.0.0-beta3
🐞 bug

Most helpful comment

这个问题暂时不太好处理,原因如下:

  • Tab 在默认情况下,会对未展示的 Panel 添加display: none样式,此时 List 可以判断自身未展示,并跳过加载过程
  • Tab 开启animated后,由于动画需要,未展示的 Panel 的display值依然为block,导致 List 无法获取到足够的信息来判断自身的展示状态

建议手动处理来避免这个问题,比如将未展示的 List 的finished设置成true

All 4 comments

目前版本里,Tab 开启animated属性后会有这个问题,可以先关掉animated,后续看下怎么处理

看一下van-list加了v-model没有呢

这个问题暂时不太好处理,原因如下:

  • Tab 在默认情况下,会对未展示的 Panel 添加display: none样式,此时 List 可以判断自身未展示,并跳过加载过程
  • Tab 开启animated后,由于动画需要,未展示的 Panel 的display值依然为block,导致 List 无法获取到足够的信息来判断自身的展示状态

建议手动处理来避免这个问题,比如将未展示的 List 的finished设置成true

这个问题暂时不太好处理,原因如下:

  • Tab 在默认情况下,会对未展示的 Panel 添加display: none样式,此时 List 可以判断自身未展示,并跳过加载过程
  • Tab 开启animated后,由于动画需要,未展示的 Panel 的display值依然为block,导致 List 无法获取到足够的信息来判断自身的展示状态

建议手动处理来避免这个问题,比如将未展示的 List 的finished设置成true

所有list没有共用同一个finished的时候该怎么办,因为每个van-tab里面的组件并不相同,所以没有用for循环渲染,也不想在同一个页面生成太多finished属性,期待早日修复

Was this page helpful?
0 / 5 - 0 ratings