react-infinite-scroll-component懒加载

asd

import InfiniteScroll from 'react-infinite-scroll-component';

let cardParams = {
  userId,
  queryParam: '',
  currentPage: 1,
  pageSize: PAGE_SIZE,
};

// 卡片滑动到底部时的懒加载函数
  const loadMoreData = async () => {
    if (loading) {
      return;
    }
    setLoading(true);
    const page = Math.ceil(cardList.length / PAGE_SIZE) + 1;
    apiGetCard({ ...cardParams, currentPage: page, queryParam: cardSearchVal })
      .then((res) => {
        const arr = res.data.records;
        setCardList([...cardList, ...arr]);
        setLoading(false);
      })
      .catch(() => {
        setLoading(false);
        setCardLoadingTip({ show: true, status: 2 });
      });
  };

const renderCardsStatus = () => {
    return cardList.length ? (
      <div id="cardAutoScroll" className={css.list_wrap}>
        <InfiniteScroll
          dataLength={cardList.length}
          next={loadMoreData}
          hasMore={cardList.length < totalCard}
          loader={
            cardLoadingTip.show ? (
              <LoadingTip status={cardLoadingTip.status} retry={loadMoreData} />
            ) : (
              <Skeleton active />
            )
          }
          endMessage={<div style={{ margin: 'auto' }}>It is all, nothing more 🤐</div>}
          scrollableTarget="cardAutoScroll"
        >
          {cardList.map((el, index) => {
            return (
              <div key={index} className={css.each_card_wrap}>
                <Card
                  data={el}
                  checkAction={checkAction}
                  previewFunc={previewFunc}
                  chapterFunc={chapterFunc}
                />
              </div>
            );
          })}
        </InfiniteScroll>
      </div>
    ) : (
      <div className={css.empty_noData}>
        <p>您搜索的标准为空</p>
      </div>
    );
  };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值