react native FlatList 下拉加载更多分页数据
一. 官方文档
flatlist文档
onendreached方法
二、相关代码
import React, { useState, useEffect } from 'react'; import { View, FlatList, Text, ActivityIndicator } from 'react-native'; const MyFlatListWithLoadMore = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [page, setPage] = useState(1); useEffect(() => { // 初始化数据 fetchData(); }, []); const fetchData = async () => { // 模拟异步加载数据 setLoading(true); try { // 发送网络请求或其他数据获取操作 const response = await fetch(`https://api.example.com/data?page=${page}`); const newData = await response.json(); // 更新数据 setData(prevData => [...prevData, ...newData]); } catch (error) { console.error('Error fetching data:', error); } finally { setLoading(false); } }; const renderItem = ({ item }) => ( <View style={{ padding: 10, borderBottomWidth: 1, borderBottomColor: '#ccc' }}> <Text>{item.name}</Text> </View> ); const renderFooter = () => { // 显示加载更多指示器 return loading ? <ActivityIndicator size="large" color="#0000ff" /> : null; }; const handleEndReached = () => { // 当滚动到底部时触发加载更多 if (!loading) { setPage(prevPage => prevPage + 1); fetchData(); } }; return ( <FlatList data={data} renderItem={renderItem} keyExtractor={(item) => item.key} ListFooterComponent={renderFooter} onEndReached={handleEndReached} onEndReachedThreshold={0.1} // 触发加载更多的阈值 /> ); }; export default MyFlatListWithLoadMore;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程