вызов вложенного axios не обновляет состояние реакции

Вы можете попробовать со следующим кодом, он не протестирован, но должен выполнять свою работу.

Как вы можете видеть ЗДЕСЬ , форма поиска имеет значения по умолчанию 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');
    });
});

0
задан Sangram Badi 19 January 2019 в 16:03
поделиться

1 ответ

Вот ответ. необходимо использовать 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);
        });
    }
0
ответ дан Sangram Badi 19 January 2019 в 16:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: