Из документации swagger я вижу, что конечная точка /neo/browse
возвращает что-то вроде этого:
{
"is_potentially_hazardous_asteroid": true,
"is_sentry_object": true,
"neo_reference_id": "string",
"name": "string",
"name_limited": "string",
"designation": "string",
"nasa_jpl_url": "string",
"absolute_magnitude_h": 0,
"estimated_diameter": {},
"close_approach_data": [
{
"close_approach_date_full": "string",
"close_approach_date": "string",
"epoch_date_close_approach": 0,
"relative_velocity": {},
"miss_distance": {},
"orbiting_body": "string"
}
],
"orbital_data": {},
"sentry_data": "string"
}
Это JSON, поэтому вы хотите получить поля и затем сохраните их в своем состоянии.
Из диаграммы реагирования Google API Я вижу, что мы хотим, чтобы данные были массивом массивов, например:
const data = [
["Column1", "Column2"],
["row1_column1", "row1_column2"],
["row2_column1", "row2_column2"],
// ...
];
Что бы я сделал:
.then(response => {
this.state.data
this.setState({
data: [
...this.state.data
[
response.data.name,
response.data.estimated_diameter.kilometers.estimated_diameter_max,
response.data.estimated_diameter.kilometers.estimated_diameter_min
]
]
})
По сути, мы добавляем новый массив с тремя значениями, которые мы хотим, к уже существующим данным. Чтобы извлечь значения из JSON, которые мы получили от API, нам просто нужно посмотреть на ответ, который мы получим, опробовав API на swagger.
Также помните, что setState()
является асинхронным .