Xzahn Ответов: 0

Консоли.выводит лог два раза, когда звонил ни разу. Первый результат всегда пустой. Почему?


Привет ребята,

Я уже неделю ломаю голову над этим вопросом. Чем больше времени я трачу на это, тем больше чувствую себя застрявшим.

Основные принципы заключаются в следующем:

Редактировать: Где я уже упоминал главное.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

Нет нужды. Я решил эту проблему.

0 Ответов