我有以下代码,现在renderProductItem
用 fixed 呈现products
。我希望在屏幕加载时呈现列表。因此,当屏幕加载时,它应该调用 API 并根据 API 响应呈现列表。
我看到了使用state
类似https://github.com/vikrantnegi/react-native-searchable-flatlist/blob/master/src/SearchableList.js之类的解决方案,但问题是当我创建constructer
它时没有在屏幕加载时被调用。所以我不确定如何state
在我的情况下使用。
一旦响应可用,我无法弄清楚如何在屏幕加载和渲染列表上调用 API。
export const ProductListScreen = ({ navigation, route }): React.ReactElement => {
const displayProducts: Product[] = products.filter(product => product.category === route.name);
const renderProductItem = (info: ListRenderItemInfo<Product>): React.ReactElement => (
<Card
style={styles.productItem}
header={() => renderItemHeader(info)}
footer={() => renderItemFooter(info)}
onPress={() => onItemPress(info.index)}>
<Text category='s1'>
{info.item.title}
</Text>
<Text
appearance='hint'
category='c1'>
{info.item.category}
</Text>
<RateBar
style={styles.rateBar}
value={4}
// onValueChange={setRating}
/>
<CategoryList
style={styles.categoryList}
data={["Adventure", "Sport", "Science", "XXX"]}
/>
<Text>
The element above represents a flex container (the blue area) with three flex items.
</Text>
</Card>
);
return (
<List
contentContainerStyle={styles.productList}
data={displayProducts.length && displayProducts || products}
renderItem={renderProductItem}
/>
);
};