Как вывести объект из eventHub.$on
Я уже неделю пытаюсь вывести объект из eventHub.$on() но все без результата.
Задача состоит в том что бы вывести на карту координаты 2000 объетов (маркеров). Дока по карте вот: https://github.com/Leaflet/Leaflet.markercluster
Из Laravel я уже в методе передал массив координат в Json (и назначил на route). Во VueJS я забрал этот массив с помощью axios.get(). Обработал массив с помощью array.map() и через eventHub.$emit() я передал массив в mounted: где принял с помощью eventHub.$on().
Теперь сама проблема. Я не могу вывести этот массив из eventHub.$on() что бы передать список координат на карту. Код:
mounted: function () {
this.getData();
eventHub.$on('getAddress', function (latLng) {
this.location = latLng;
}.bind(this));
var addressPoints =[
//... Сюда необходимо передать массив с координатами ...
]
}
methods: {
getData: function () {
axios.get('/objects/get-address').then(function (response) {
this.locations = response.data;
const latLng = this.locations.map(location => {
var coordinate = [location.latitude, location.longitude]
return coordinate;
});
eventHub.$emit('getAddress', latLng);
}.bind(this));
},
}
- Я пробовал через замыкание. Но это не дало результата.
- Пробовал вызвать новый метод внутри eventHub.$on() и передавать ему этот массив как аргумент. Так сработало но только метод выполнил действие и вернул данные которые я не могу использовать в mounted:
- Код который я вложил, работает. Я могу вывести в concole.log весь массив, но только из eventHub.$on(). Вот скрин:
Прошу помощи у знатоков. PS/ Не бейте сильно. Я еще Junior.
Ответы (1 шт):
В общем я вышел из ситуации по другому. Я принял этот массив в родительском компоненте и через свойства PROPS передал в дочерний компонент. Но так как у меня большой объем данных (более 2000 объектов), пришлось обрабатывать в watch:
Теперь все работает.

