Использование React.
Я приложение, которое берет данные, которые были отправлены в строке поиска, и возвращает список идентификаторов.Я хочу взять эти идентификаторы и передать его через другой API.Однако я не уверен, как это сделать.Я просмотрел несколько других страниц на стеке, таких как , и , .Первый слишком расплывчатый, а второй имеет независимые вызовы API, которые выполняются последовательно.
Вот мой код:
import React from 'react'
import api1 from '../api/api1'
import SearchBar from './SearchBar'
class App extends React.Component {
state = { cards: [], new_cards: []};
onSearchSubmit = async (term) => {
const response = await api1.get("api/decks/" + term)
this.setState({ cards: response.data.data.cards, })
}
render () {
return (<div className='ui container'>
<SearchBar onSubmit={this.onSearchSubmit} />
{/* <CardList cards={this.state.cards} /> */}
</div>)
}
}
export default App
Мой код примет первый API и передаствывод (список из 36 элементов) вплоть до компонента CardList.Однако список не полный, он должен быть списком списков (вы можете сказать, что я пришел с python).Сначала мне нужно вызвать другой API-интерфейс (локальный на моем компьютере), получить оставшиеся данные и затем передать новый список (из 36 списков) компоненту CardList.Второй API работает просто отлично сам по себе.У меня проблемы с их объединением.
Это мои мысли, но это не работает.1) создать новую функцию getCardStats 2) использовать функцию map для итерации по списку один и запустить вызов API.3) добавить вывод шага 2) в новый список 4) вернуть новый список 5) передать новый список в CardList
В первом списке 36 элементов, поэтому следующий API должен вызываться 36 раз,Я не знаю, каковы последствия того, что делать так много / мало.Нужно ли нам положить что-то, что ждет всех 36, чтобы закончить, или мы можем сделать их параллельно?
import React from 'react'
import api1 from '../api/api1'
import api2 from '../api/api2'
import SearchBar from './SearchBar'
class App extends React.Component {
state = { cards: [] };
onSearchSubmit = async (term) => {
const response = await api1.get("api/decks/" + term)
this.setState({ cards: response.data.. })
this.getCardStats(this.state.cards)
}
getCardStats = async (cards)=> {
console.log('we are here')
console.log(cards)
const response = props.cards.map(card => {
return await api2.get("api/cards/" + card)
})
}
console.log('finished')
console.log(response)
this.setState({ new_cards: response.data.data.cards })
render () {
return (<div className='ui container'>
<SearchBar onSubmit={this.onSearchSubmit} />
{/* <CardList cards={this.state.new_cards} /> */}
</div>)
}
}
export default App
Мысли?