解决van-list分页太小首次加载两次的问题

问题描述

使用van-list分页,下拉翻页时,页面大小为5,初次加载页面,就会直接发送2次请求,直接请求了页码1,2两个页面

解决方案

设置页面加载不立即检查是否翻页。页面创建执行van-list的onload方法
代码如下:

<van-list v-model="loading" :finished="finished" @load="onLoad" @refresh="onRefresh" :offset='50' :immediate-check="cheack">
        <div v-for="(item,index) in lists" :key="index" class="item">
          <a :href="item.url+'?activityId='+item.id+'&userId='+$route.query.userId">
            <div class="img_container">
              <img :src="item.image" alt />
            </div>
            <div class="text">
              <p class="name">{{item.name}}</p>
              <p class="time">
                <img src="../assets/calander.png" alt style="width:0.347rem;vertical-align:middle" />
                {{item.startTime}}{{item.endTime}}
              </p>
            </div>
          </a>
        </div>
      </van-list>
export default {
  data() {
    return {
      lists: [],
      page:1,
      loading: false,
      finished: false,
      cheack:false,
    };
  },
  
  created() {
    this.onLoad();
  },
  methods: {
 	    getList() {
  	    this.$http.get("/activity/MallActivityList",{
          params:{
            userId:this.$route.query.userId,
            page:this.page,
            size:5
          }
        }).then((res) => {
          var data = res.data;
          if (this.page == 1) {
            this.lists = data.data;
          } else {
            this.lists = this.lists.concat(data.data)
          }

          this.loading = false;
          this.page++;

          if (data.data.length == 0 || data.data == null || data.data.length < 5) {
            this.finished = true
            return
          }
        });
    },
    onLoad(){
      this.getList();
    },
    onRefresh() {
      this.finished = false;
      this.loading = true;
      this.onLoad();
    },
  },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值