Реагировать на собственные данные API - PullRequest
1 голос
/ 26 апреля 2020

У меня есть класс, который получает данные из API и возвращает массив.

В файле, который я называю так:

let defaultMenu2 = '';
import GetCategories from '../constants/tabs';

GetCategories.renderTabs().then((response) => {
    console.log(response);
    defaultMenu2 = response;
});
console.log('response----------' + defaultMenu2);

console.log отлично отображает массив (в консоли), но переменная "defaultMenu2" всегда пуста.

Кто-нибудь знает, что я делаю не так?

Заранее спасибо!

Может кто-нибудь объяснить, как сохранить переменные, определенно не понимая, почему я не могу перезаписать переменную или объект ...

попробовал это:

let tabs2 = new Object();
GetCategories.renderTabs().then((response) => {
    //console.log(response);
    tabs2 = response;
    alert('number 1 response #########'+JSON.stringify(tabs2));
});

alert('response#########' + JSON.stringify(tabs2));

"ответ № 1 # ######## "предупреждение прекрасно отображает то, что мне нужно, но другое предупреждение" ##### "- пустой объект.

  1. Есть файл вкладок. js с данными:

    экспорт вкладок по умолчанию = {сделок: [{id: 'communityPartner', название: 'Community Partner13 '}, {id:' localBusiness ', title:' Local Business '}, {id:' nonProfit ', title:' Non Profit '}, {id:' help ', title:' Help '}, {id: 'волонтер', название: 'Волонтер'}, {id: 'студент', название: 'Студент'}, {id: 'thankYou', название: 'Спасибо'},],};

  2. Появились новые вкладки файлов 2. js с вызовом API для реальных данных:

    const APItabs = 'https://.........tabs.json';

    экспорт класса по умолчанию GetCategories {stati c renderTabs = asyn c () => {tabsArrayholder = []; возвращать await fetch (APItabs) .then ((response) => response. json ()) .then ((response Json) => {tabsArrayholder = responseJson; вернуть tabsArrayholder;}) .catch ((ошибка) = > {console.error (error);}); }; }

  3. В файле Screens. js есть вызов вкладок. js (фиктивные данные):

    импорт вкладок из '../constants / tabs ';

, чем данные отображаются как tabs.deals .... без проблем.

Я добавил tabs2. js на экраны. js (как только он начнет работать, он должен заменить вкладки ...

let tabs2 = new Object (); импортировать GetCategories from '. ./constants/tabs2';

GetCategories.renderTabs (). then ((response) => {tabs2 = response; alert ('number 1 response #########' + JSON .stringify (tabs2));});

alert ('response #########' + JSON .stringify (tabs2));

Мое намерение состояло в том, чтобы переименовать tabs2 в tabs ... так что весь код впоследствии будет таким же.

Проблема в том, что я думаю, что код ниже GetCategories.renderTabs () .... отображается перед тем это воспроизведение из GetCategories.renderTabs () ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...