import React, { useEffect, useState } from 'react';
import VirtualList from '..';
import { Text, View } from 'react-native';
const newData = Array.from({ length: 20 }, (_, index) => ({
title: (0 + index + 1).toString(),
}));
const Demo = () => {
const [data, setData] = useState([]);
const [isLoading, setIsLoading] = useState(false);
const [isLoadingMore, setIsLoadingMore] = useState(false);
const [isBottom, setIsBottom] = useState(false);
useEffect(() => {
if (data.length === 0) {
setIsLoading(true);
setTimeout(() => {
setData(newData as never);
setIsLoading(false);
}, 1000);
}
}, []);
const reloadData = () => {
setIsLoading(true);
setTimeout(() => {
setData(newData as never);
setIsLoading(false);
}, 1000);
};
const loadMoreData = () => {
if (!isLoadingMore) {
setIsLoadingMore(true);
setTimeout(() => {
const newData = Array.from({ length: 20 }, (_, index) => ({
title: (data.length + index + 1).toString(),
}));
setData([...data, ...newData] as never);
setIsLoadingMore(false);
if ([...data, ...newData].length > 40) {
setIsBottom(true);
setIsLoadingMore(true);
}
}, 1000);
}
};
const getItemLayout = (_: any, index: number) => ({
length: 20, // 确切的项高度
offset: 20 * index,
index,
});
const renderItem = ({ item }: any) => {
return (
{item.title}
);
};
return (
);
};
export default Demo;