У меня следующий код, сейчас renderProductItem
отображается с фиксированным 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}
/>
);
};