我使用van-pull-refresh和van-list然后上拉加载出现请求多次的问题,我当时有点想不明白哪里错了,控制变量一共就三个,isLoading,loading,finised;下面是我使用组件的代码
后来还是决定好好看看文档,我冷静下来仔细琢磨了文档的描述和例子,文档对van-list是这样子描述的
List 组件通过
loading
和finished
两个变量控制加载状态,当组件滚动到底部时,会触发load
事件并将loading
设置成true
。此时可以发起异步操作并更新数据,数据更新完毕后,将loading
设置成false
即可。若数据已全部加载完毕,则直接将finished
设置成true
即可
读完之后我似懂非懂 ,我决定用一个变量标识在onLoad中控制去请求数据的次数,首先flag初始值为true,然后在上拉加载的时候加个判断,在this.getData()中先把this.flag赋值为false,等请求到数据之后this.flag赋值为true
多加一个变量确实可以解决我上拉加载请求多次的问题~
感觉应该是list本身的问题,因为onLoad是异步的,所以无论我在哪修改loading=false都没有作用
---------------------------------------
后面再次使用这个组件之后,我发现vant-list提供了immediate-check这个属性
设置了之后页面一进来就不会出发onload()
vant文档给出的解释是这样子的