Вы можете попробовать со следующим кодом, он не протестирован, но должен выполнять свою работу.
Как вы можете видеть ЗДЕСЬ , форма поиска имеет значения по умолчанию id
поэтому вы можете установить обработчик в поле ввода, когда он потеряет фокус, вы можете fadeOut
его контейнер.
$(".search-toggle").click(function(e) {
e.stopPropagation();
$("#search-toggle-nav").slideToggle('slow', function() {
$(".search-toggle").toggleClass('active');
});
});
$('#s').on('focusout', function(e) {
$("#search-toggle-nav").fadeOut('slow', function(){
$(".search-toggle").removeClass('active');
});
});
Вот ответ. необходимо использовать async и ожидать во время вызова API во внутренних аксио.
getAllLeague() {
axios.get(BASE_URL + 'leagues').then(async (response) => {
var arrData = [];
for(var i=0; i<response.data.length; i++) {
var data = {
"leagueid": response.data[i].leagueid,
"description": response.data[i].description,
"itemdef": response.data[i].itemdef,
"name": response.data[i].name,
"tournament_url": response.data[i].tournament_url,
"prize_pool" : ''
}
await axios.get(BASE_URL + 'getTournamentPrizePool/' + response.data[i].leagueid).then((response) => {
data.prize_pool = response.data.prize_pool;
})
arrData.push(data);
}
console.log(arrData);
this.setState({
leagueList : arrData
});
}).catch((error) => {
console.log(error);
});
}