视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mint-uiloadmore上拉加载与下拉刷新冲突处理方法
2020-11-27 19:54:52 责编:小采
文档


这次给大家带来mint-ui loadmore上拉加载与下拉刷新冲突处理方法,mint-ui loadmore上拉加载与下拉刷新冲突处理的注意事项有哪些,下面就是实战案例,一起来看一下。

所遇问题:

该页面为双选项卡联动,四个部分都需要上拉加载和下拉刷新功能,使用的mint-ui的loadmore插件,分别加上上拉加载后,只有最后一个的this.$refs.loadmore.onTopLoaded();this.$refs.loadmore.onBottomLoaded();

有效,其他的三个都无效,这两句话是意思是查询完要调用一次,用于重新定位

分析原因:

首先这四个模块都是用的?????

<mt-loadmore :top-method="loadTop"
 :bottom-method="loadBottom"
 :bottom-all-loaded="allLoaded"
 ref="loadmore">
 <ul class="ul-box">
 <li class="list-cell ta-line" v-for="(item,index) in gridNoPayMail" :key="item+'walletdetail1'" @click="choose(index)">
 <p class="checkboxOne">
 <input type="checkbox" name="checkInput" :id="'id1' + index" v-model="item.checked" disabled/>
 <label :for="'id1' + index"></label>
 </p>
 <p class="left-text">
 <p class="award">{{item.a}}</p>
 <p class="time">{{item.b}}</p>
 </p>
 <p class="right-text">
 <p class="addinfo">¥{{item.c}}</p>
 </p>
 </li>
 </ul>
 </mt-loadmore>

top-method和bottom-method,bottom-all-loaded分别赋予不同的事件名,前两个事件分别表示下拉,上拉,第三个若为真,则 bottomMethod 不会被再次触发,一般进入页面我们默认为false

调用接口成功后进行的取消加载的判断,这里可以给接口的方法一个type值,如果type为top1时则证明正在进行的是下拉刷新执行this.$refs.loadmore1.onTopLoaded();,上拉加载同理,其他三个模块同理

if(type=='top1'){
 this.$refs.loadmore1.onTopLoaded();
 }else if(type=='bottom1'){ 
this.$refs.loadmore1.onBottomLoaded();
}

到了这里就会出现开始所描述问题,

解决方法

一开始做了很多尝试,比如利用v-if当一个模块显示时让其他三个隐藏,总是会出现不同的问题,后来将ref="loadmore"中ref后的参数在四个模块中做了区分比如分别为loadmore1,loadmore2……,这里我是这样理解的,ref 在此的作用为子组件指定一个索引 ID,类似于dom元素的id,id名不能相同,所以我们将ref修改为不同的参数,问题解决,

附Vue官网链接https://vuejs.org/

??mint-ui:https://mint-ui.github.io/docs/#/en2/loadmore

PS:mint-ui loadmore组件注意问题

loadTop(){
 this.$store.dispatch('getNewsList',{channelId:this.id,page:0,size:this.size});
 this.$refs.loadmore.onTopLoaded();
},

比如在做下拉刷新的时候,切记在下拉刷新的函数中要加

this.$refs.loadmore.onTopLoaded();

这行代码,否则下拉加载之后一直显示加载中,而不会加载完成。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

下载本文
显示全文
专题