React实现无限滚动加载列表的优化技巧

   日期:2024-12-20    作者:czdytfhm4 浏览:57    移动:http://w.yusign.com/mobile/quote/2025.html

import React, { useState, useEffect } from 'react';
import { List } from 'react-virtualized';

const InfiniteScrollList = () => {
  const [data, setData] = useState([]);
  const [isLoading, setIsLoading] = useState(false);

  useEffect(() => {
    // 模拟异步加载数据
    const fetchData = async () => {
      setIsLoading(true);
      const response = await fetch('api.example.com/data');
      const newData = await response.json();
      setData(prevData => [...prevData, ...newData]);
      setIsLoading(false);
    };

React实现无限滚动加载列表的优化技巧

    fetchData();
  }, []);

  const rowRenderer = ({ index, key, style }) => {
    // 渲染每一行数据
    const item = data[index];
    return (
      <div key={key} style={style}>
        {item}
      </div>
    );
  };

  return (
    <List
      width={500}
      height={500}
      rowHeight={50}
      rowCount={data.length}
      rowRenderer={rowRenderer}
      isLoading={isLoading}
      onScroll={({ scrollTop }) => {
        // 判断是否滚动到底部,加载更多数据
        if (scrollTop > 0 && scrollTop + 500 >= data.length * 50 && !isLoading) {
          fetchData();
        }
      }}
    />
  );
};

本文地址:http://w.yusign.com/quote/2025.html    述古往 http://w.yusign.com/static/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关行情
推荐行情
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号