Vant-list上拉加载及下拉刷新问题怎么解决


本篇内容介绍了“Vant-list上拉加载及下拉刷新问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Vant-list 上拉加载及下拉刷新

第一步引入

import{Notify,Dialog,Image,List,PullRefresh}from'vant'importVuefrom'vue'Vue.use(Image).use(List).use(PullRefresh)

第二步

<van-pull-refreshv-model="refreshing"@refresh="onRefresh"><van-listv-model="loading":finished="finished"finished-text="没有更多了"@load="onLoad"><!--这里根据自己需要展示数据--></van-list></van-pull-refresh>

第三步

data(){return{productList:[],//异步查询数据loading:false,//自定义底部加载中提示finished:false,//自定义加载完成后的提示文案refreshing:false,//清空列表数据pageNo:0//当前页码}}

第四步

methods:{onLoad(){this.pageNo++setTimeout(()=>{if(this.refreshing){this.productList=[]this.refreshing=false}this.loading=falseconstshopId=this.$store.state.user.shopId//这里是ajax请求根据自己业务需求pageList({shopId:shopId,pageNo:this.pageNo,pageSize:2}).then(res=>{if(this.validResp(res)){this.total=res.data.pageNothis.loading=truethis.productList.push(...res.data.dataList)}if(this.productList.length>=parseInt(res.data.pageNo)){this.finished=true}})},1000)},onRefresh(){this.finished=falsethis.loading=truethis.pageNo=0this.onLoad()}}

vant下拉刷新与上拉加载一起使用问题

下拉刷新触发两次 list与pull

//下拉刷新onRefresh(){this.list=[];this.curPage=1;this.finished=true;this.getData();},getData(){this.isLoading=false;getList({curPage:this.curPage,pageSize:this.pageSize}).then((res)=>{this.listLoading=false;if(res.code==200){this.list=this.list.concat(res.data.list);this.curPage=res.data.nextPage;if(this.list.length>=res.data.total){this.finished=true;}else{this.finished=false;}}})},

原因是在于下拉刷新的时候触发了上拉加载,所以执行了两次

解决方法是

先将list组价的finished=true,数据加载完了在判断该值应该是true还是false,这样可以避免在下拉刷新的时候触发上拉加载。

“Vant-list上拉加载及下拉刷新问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注主机评测网网站,小编将为大家输出更多高质量的实用文章!


上一篇:mysql索引数据结构要用B+树的原因是什么

下一篇:mysql?8.0.26安装配置的方法


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器