Мне нужно создать приложение, которое взаимодействует с API, который хранит информацию о клиентах.
Я создал функцию getCustDetail
, которая будет запрашивать информацию о клиенте, используя метод GET
.
Это то, что сервер должен отправлять при отправке запроса в API:
{
"cust_id": 1,
"given_name": "John",
"family_name": "Smith",
"email": "smith99@hotmail.com",
"recent_purchases": [
{
"item_id": 1,
"price": 20,
"item_descr": "Small apple”
},
{
"item_id ": 2,
" price ": 15,
"item_descr": "Sponge Cake”
}
}
]
}
Это моя функция get GET
, которая получает ответ и сохраняет его в:
userDetails: [] state
Я попытался преобразовать строку ответа JSON в массив, чтобы он мог отображаться в моих листах с помощью функции object.values
:
'userDetail: Object.values(resJson),'
getCustDetails () {
return fetch(‘API URL HERE’,
{
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
})
.then((res) => res.json())
.then((resJson) => {
this.setState({
userDetail: Object.values(resJson),
});
console.log("The server response is :" + this.state.userDetail)
})
.catch((error) => {
console.log(error);
});
}
Сообщение журнала консоли из функции getuserdetail:
"The server response is : 1,John,Smith,smith99@hotmail.com,[object Object],[object Object]"
Мой плоский список настроен для получения сведений о клиенте и отображения их в приложении:
<FlatList
data={this.state.myDetails}
keyExtractor={({ user_id }) => user_id}
renderItem={({ item }) => <View style={styles.list}>
<Text style={styles.ListText}>{item.cust_id }</Text>
<Text style={styles.ListText}>{item.given_name}</Text>
<Text style={styles.ListText}>{item.family_name}</Text>
<Text style={styles.ListText}>{item.email}</Text>
</View>}
/>
Когда я пытаюсь получить информацию о клиенте в своем приложении, появляются пустые плоские списки без данных.
Что я делаю не так?