antdMobile InfiniteScroll无限滚动

官网:antdMobile官网

用户想看到新的数据时,可以上滑页面自动加载数据。

当 hasMore 属性为 true 时,用户页面滚动到底部 threshold (默认为 250px)时无限滚动组件会调用定义的 loadMore 函数。

 // 解决useState 异步 接口多调一次的问题
  const listRef = useRef(ensureList)
  listRef.current = list

  const getList = async ({ no }) => {
    try {
      const res: any = await getProductList({
        page: no,
        pageSize: 10,
        name: searchName,
      });
      if (res.code === 200) {
        const append = res.data || [];
        if (append.length > 0) {
          setList((val) => [...val, ...append]);
          setPage(no);
          //listRef解决异步问题
          const totalLength = listRef.current.length;
          setHasMore(totalLength < res.total);
          return;
        }
        setHasMore(false);
      }
      setHasMore(false);
    } catch {
      setHasMore(false);
    }
  };
  const changeTab = async (key: string) => {
    setList([]);
    setPage(0);
    setHasMore(true);
  };
  const searchProductList = (value: string) => {
    setList([]);
    setPage(0);
    setHasMore(true);
  };

  const handleLoadMore = async () => {
    await getList({ no: page + 1 });
  };
<div>
       {/* 列表 */}
      <ProductList list={list}></ProductList>
      <InfiniteScroll loadMore={handleLoadMore} hasMore={hasMore} threshold={0}></InfiniteScroll>
</div>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值