赞
踩
改了好久,逼得我差点自己写一个了。。
html:
<van-list finished-text="没有更多了"
@load="onLoad"
v-model = "loading"
:finished="finished"
offset="100"
:immediate-check = false
>
<list-component v-for="item in hisTripList" :list="item"></list-component>
</van-list>
js
export default { data(){ return{ loading: false, finished: false, hisTripList: computed(()=>this.$store.getters.hisTripList) } }, methods:{ // 触底加载 async onLoad(){ console.log("触底加载",this.loading); await this.addList(); }, // 添加 async addList(){ await this.$store.dispatch('user/changeHisTripList',{ hisPageIndex }); console.log("加页完成"); this.loading = false; this.finished = !this.$store.getters.hisNextPage; } }, } }
css: 有同种情况点它
听说父组件加 overflow: scroll;会出问题,包括html啊body啊加都会出问题
但是,其实遇到外面要加 < van-pull-refresh >标签的话,是需要加overflow: scroll 的,可以先把这个给删了测试,搞定再加上 < van-pull-refresh >
确认一下,要是还有问题,那就看看我的bug了~
// 触底加载
async onLoad(){
console.log("触底加载",this.loading);// false
},
// 触底加载
async onLoad(){
console.log("触底加载",this.loading);// true
this.loading = true;
},
// 触底加载
async onLoad(){
console.log("触底加载",this.loading);// true
this.finished = true;
await request();
this.finished = false;
},
手动给他设置一个finished = true;这样在数据请求结束前就不会再次触发了,等到请求完成之后根据情况再设置回去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。