在做列表页时,需要实现下滑加载下一页的数据,我使用的是react native原生的组件FlatList,话不多说,一起来看看吧
<SafeAreaView style={{flex:1,backgroundColor:'#F7F7F7',paddingHorizontal:10}}>
{loding?<ActivityIndicator/>:<FlatList
data={listData}
onEndReached={() => onLoadMore()}
onEndReachedThreshold={0.2}
renderItem={renderItem}
ListHeaderComponent={() => (!listData.length?
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Image style={{width:160,height:160}} source={require('../../assets/images/noData.png')} />
<Text style={{color:'#828282'}}>暂无数据~</Text>
</View>:null)
}
keyExtractor={(item:any) => item.id}
/>}
</SafeAreaView>
const onLoadMore = ()=>{
if(pages > param.current ){
const params = {...param,current: param.current+1}
getList(params).then((res:any)=>{
if(res.data){
const list = [...listData,...res.data.records]
setList(list)
setParam(params)
}
})
}else{
console.log('不可以加载了',param.current,pages);
return
}
}
const renderItem = (item:any) => (
<IistItem info={item.item} navigation={props.navigation} />
);