动态改变渲染swiper-item的数组时出现current为-1的情况
发布于 5 年前 作者 yanjing 3054 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)  因为数据量太大,选择在swiper滑动时动态改变list中的数据,开始取索引从0 - 10的数据,当滑动到最后一条的时候把数据改为所以从 0 - 20 的数据,因为是通过current-item-id控制当前swiper的展示,所以在右滑切换的时候表现正常,只是在数据替换时有些卡顿,但是当开始往回滑动的时候就会出现 current 为-1的情况导致白屏,但是并没有使用current控制swiper。而且可以保证current的值一直在swiper-item总量之内。
  • 预期表现  不会出现current为-1的情况
  • 复现路径
  • 提供一个最简复现 Demo
3 回复

除了增加初次渲染swiper-item数量,有没有找到解决方法?我的一次渲染3个item,右滑一直没问题,左滑明明页面存在,左滑的一半的时候也能看见上一个页面内容,一但滑完,current自动变为-1,页面就变空白了

util.js 下的 getPosterList 函数,我看你用 slice 计算了 nextList, 在这里应该保证:前面加载过的item不能被挪掉否则swiper内部可能会错乱。所以,应该返回 list.slice(0, endIndex)。

回到顶部