VueX: Как совершить в цикле? - PullRequest
0 голосов
/ 27 апреля 2020

Итак, я делаю компонент в vueX, который получает массив местоположений, которые вводит пользователь (с помощью API Карт), а затем я пытаюсь превратить этот массив в координаты, чтобы я мог сохранить их для дальнейшего использования. Чтобы сохранить эти координаты, я отправляю их в магазин проектов. Все работает нормально, за исключением того факта, что сохраняется только элемент last массива. Я думаю, что проблема связана с тем, что я пытаюсь совершить много раз в цикле, но я не совсем уверен, как это исправить. Любые идеи? Спасибо и извините, если я написал что-то не так, engli sh не является моим основным языком!

PS - я могу сказать, что получение ввода от пользователя и передача его в массив работает, а фиксация работает как хорошо (даже если только последний пользовательский ввод), так что ни получение ввода, ни сам коммит не являются проблемой!

geocodeAddress(geocoder) {
      let markerr = [];
      let address = "";
      for (let i = 0; i < this.pois.length; i++) {
        address = this.pois[i].name;

        geocoder.geocode({ address: address }, (results, status) => {
          if (status === "OK") {
            this.map.setCenter(results[0].geometry.location);

            markerr = new google.maps.Marker({
              map: this.map,
              position: results[0].geometry.location
            });

            markerr.setMap(this.map);
            this.coord = markerr;

            this.$store.commit("ADD_ROUTE", {
              id: Number(this.getLastRouteId()) + 1,
              name: address,
              lat: this.coord.getPosition().lat(),
              lng: this.coord.getPosition().lng()
            });
          } else {
            alert(
              "Geocode was not successful for the following reason: " + status
            );
          }
        });
      }
    }

...