Vue中 Van-List上拉不加载数据的适配问题
背景:
在安卓设备的钉钉APP中,点击打开撮合列表页面,默认第一个Tab,列表出现上拉不加载数据问题,但当切换Tab后,列表均可以上拉加载数据。
配图:
文章图片
代码:
理论:
List 的运行机制(List 会监听浏览器的滚动事件并计算列表的位置,当列表底部与可视区域的距离小于 offset 时,List 会触发一次 load 事件)
猜想:
- 尝试了很多种方法均失败,偶然发现van-empty组件的位置有关,原先是写在van-list组件中,对carCard和van-empty进行v-if判断,这样van-list不会重新渲染计算高度和位置;
- 在IOS设备、PC、甚至安卓手机自带的浏览器和微信点开的页面,均无此问题,大胆猜测,安卓钉钉的webview有点太老了,导致计算高度和列表底部与可视区域的距离不准确,从而无法触发load 事件,也就无法上拉加载数据。
- 【Vue中 Van-List上拉不加载数据的适配问题】进入页面,默认为其他Tab(非第一个Tab)时,第一个Tab的列表就没有上述问题了。----但是这种不推荐,与用户交互习惯背道而驰;
- van-empty和van-list同级,当有数据时,v-if中的state.list.length > 0为true,van-list会重新渲染,就会重新计算列表高度和位置,完美解决了这个适配问题。---
文章图片
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- vue-cli|vue-cli 3.x vue.config.js 配置
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募