[在我的本地本机应用程序中,我使用了cocktailDB API的两个端点:https://www.thecocktaildb.com/api/json/v1/1/list.php?c=list-饮料类别https://www.thecocktaildb.com/api/json/v1/1/filter.php?c=Ordinary%20Drink-饮料清单
我制作了FlatList
,其中onEndReached()
更改了页码,并进行了API调用以获取下一个类别的饮料。饮料被添加到drinksList
数组中,以便来自上一个API调用的数据保持在最前面。
<FlatList
keyExtractor={(item) => item.idDrink.toString()}
data={drinksList}
onEndReached={() => {
if (!isLoading) {
setCurrentPage((page) => page + 1);
}
}}
onEndReachedThreshold={0.3}
renderItem={({item}) => {
return (
<View>
<Image
style={{height: 100, width: 100, marginRight: 20}}
source={{uri: item.strDrinkThumb}}
/>
<Text>{item.strDrink}</Text>
</View>
);
}}
/>
我将数组index
分配为id
到每个类别项目,因此我可以基于currentPage
值访问它们。
我的问题是,在API调用后呈现每种饮料类别时,如何向每个类别添加标题。我尝试使用ListHeaderComponent
的FlatList
道具来执行此操作,但由于只有一个FlatList
而无法正常工作,因此标题更改了,但仍位于FlatList
的最顶部,但是我需要使用该类别名称在每个FlatList
“页面”的顶部]
您必须使用SectionList instead of FlatList
,它具有多个部分,就像您可以说多个标题一样。