vant的list 一直请求数据,van-list 的load方法不断连续的调用方法请求数据,诡异现象。完整解决方案
问题:
当我把API的参数配置 immediatecheck 设置为True后,load方法请求就会异常,疯狂调用方法请求数据
immediatecheck: true,//是否在初始化时立即执行滚动位置检查
参考文章:
造成问题的原因:
原因一:
初始加载的数据长度,没有把页面的【高】撑起来。简单的说就是没有铺满屏幕,他会把数据铺满屏幕后自动停止;
解决:
你需要一次加载的数据必须铺满屏幕,或者把【offset】设置的高一些
offset: 500,//滚动条与底部距离小于 offset 时触发load事件,默认300
原因二:
检查“上级容器”的CSS是否带有【overflow】的样式属性;
解决:
作者我就是遇到了“原因二”,
我的CSS是这样写的
.content {
width: 94%;
margin: 0 auto;
overflow-x: hidden;
}
改成
.content {
width: 94%;
margin: 0 auto;
word-break: break-all;
}
代码修改后正常;我主要是不想让内容撑破容器,所以用了“overflow”;
代码换成了【 word-break: break-all;】内容自动换行;
自动换行属性,使用【word-break】属性,可以让浏览器实现在任意位置换行
它有三个属性值分别为:
normal: 浏览器中的默认换行行为
break-all:可允许在单词内换行
keep-all:只能在半角空格或连字符处进行换行
原因三:
在找解决方案的时候遇到另一个奇葩的问题;
安卓机正常,苹果机不断请求;
文章地址:
解决:
load方法调用时,先设置API的【loading】属性为true,获得数据后再把【loading】属性为false.
原因四:数据赋值错误
造成的原因:
由于数据赋值错误,造成数据一直是空的;没有数据,页面就撑不起来;
造成的原理:
vant-list加载数据的依据(判断)是根据【<div class="van-list__placeholder"></div>】标签和滚动条的距离;因为没有数据,页面撑不起来;造成“标签”和“滚动条”的距离一直处在,触发加载数据的高度(条件);就造成了“不断连续的调用方法请求数据”