Консоли.выводит лог два раза, когда звонил ни разу. Первый результат всегда пустой. Почему?
Привет ребята,
Я уже неделю ломаю голову над этим вопросом. Чем больше времени я трачу на это, тем больше чувствую себя застрявшим.
Основные принципы заключаются в следующем:
Редактировать: Где я уже упоминал главное.JS, MapContainer.JS, и StationsAPI, есть все ссылки на код в Pastebin!
Я использую React, Webpack 4, Google Maps API и еще один сторонний API.
Я загрузка JSON от API в StationsAPI файл. Затем этот файл импортируется в Main.JS в котором я получаю все данные (массив объектов) из StationsAPI и устанавливая его в качестве состояния для компонента, который затем я передаю в MapContainer компонент в качестве реквизита. Не может же все быть так просто, верно? Очевидно, нет...
Если я консольно регистрирую данные, где я должен получить одну строку с массивом объектов, я получаю две строки, первая-пустой массив, вторая-фактические данные.
Мне просто нужно ввести данные в setMarkers() в MapContainer.JS и визуализировать маркеры, которые, кстати, были протестированы и работают с фиктивными жестко закодированными данными.
Что я уже пробовал:
До этого у меня был еще один проект с такой же структурой. Внешний API, который выполняет выборку. Установка данных в качестве состояния в Родительском компоненте. И передача данных дочернему компоненту в качестве реквизита. Раньше это работало как заклинание, поэтому я снова использовал тот же код. Единственная разница заключается в том, что я использовал create-react-app в предыдущем проекте, а теперь использую React + Webpack 4.
Изначально я использовал обещание в основном.JS, чтобы получить все данные. Затем просто передайте его другому компоненту. Это не сработало из-за проблемы, описанной выше. С тех пор я перепробовал десятки разных вещей и сотни раз менял код, так что не помню всего. Я попросил помощи в Reddit, и кто-то сказал мне, что я должен использовать async/await, и я сделал это, что отчасти помогло, но не совсем.
Если я консоль лог
stations
переменная внутри асинхронной функции я получаю только один результат с данными, которые я задаю как состояние основного компонента. Однако когда я консольный журнал
this.state.stations
после этого проблема все еще присутствует. Я здесь в темноте, ребята! Понятия не имею, что могло бы вызвать это, и я перепробовал все, что мог собрать. Я буду очень признателен за любую помощь!
Patrice T
И у вас есть какой-то код, который показывает проблему ?
Xzahn
Привет, Патрис, StationsAPI, Main.JS и MapContainer.JS-это все ссылки на код в Pastebin.
F-ES Sitecore
Если вы получаете два журнала консоли, то я предполагаю, что ваша функция ведения журнала вызывается дважды по какой-то причине, возможно, вы зарегистрировались на одно и то же событие более одного раза. Не видя кода, это невозможно сказать.
Xzahn
Почему вы не видите код? Там, где я упомянул StationsAPI, Main.JS и MapContainer.JS, все это ссылки на код в Pastebin. Давай...
Richard MacCutchan
Это не наша работа, чтобы пойти и найти ваш код и выяснить, что не так. Ваша задача-показать те части кода, которые вызывают проблему, и предоставить некоторые подробности о том, что происходит.
Xzahn
Эй, Ричард, я трачу два часа на написание этого вопроса, чтобы он был как можно более ясным. Я не понимаю, как вы можете пропустить код. Это просто обычные ссылки.
Richard MacCutchan
Перечитайте мой предыдущий комментарий еще раз.
Xzahn
Нет нужды. Я решил эту проблему.