Ошибка поиска местоположения по googleMapsAutoComplete .. на реагировать родной? - PullRequest
0 голосов
/ 19 февраля 2020

Когда я ищу какое-то место, оно нарушает работу приложения, вот ошибка:

Устройство: (357: 37) this.mapView.animateToLocation не является функцией. (В 'this.mapView.animateToLocation ({широта: lo c .lat, долгота: lo c .lng})', 'this.mapView.animateToLocation' не определено)

Вот входные данные для поиска:

<MapInput style = {{flex: 1, position : 'absolute'}} notifyChange={loc => this.getCoordsFromName(loc)} />

А вот маркер анимации для выбранного местоположения:

 goCoordsFromName(loc) {
    this.setState({
      region: {
        latitude: loc.lat,
        longitude: loc.lng,
      },
    });
  }

  getCoordsFromName(loc) { 
    this.goCoordsFromName(loc);
    this.mapView.animateToLocation({
      latitude: loc.lat,
      longitude: loc.lng,
    })
  }

  animateToLocation = location => {
    this.mapView.animateToRegion({
      latitude: location.latitude,
      longitude: location.longitude,
      latitudeDelta: LATITUDE_DELTA,
      longitudeDelta: LONGITUDE_DELTA,
    });
  };

Вот ссылка на полный код:

https://snack.expo.io/@matheus_cbrl / реагирует-нативный-карт-автополное? session_id = снэк-сеанс zEXHnaZSt & ссылающиеся = HTTPS% 3A% 2F% 2Fmedium.com% 2F% 40mohammad.nicoll% 2Freact-нативную карт-с-автоподсказку-e9c71e493974

1 Ответ

0 голосов
/ 19 февраля 2020

Вот возможное решение, я сделал это:

Это:

 goCoordsFromName(loc) {
    this.setState({
      region: {
        latitude: loc.lat,
        longitude: loc.lng,
      },
    });
  }

  getCoordsFromName(loc) { 
    this.goCoordsFromName(loc);
    this.mapView.animateToLocation({
      latitude: loc.lat,
      longitude: loc.lng,
    })
  }

  animateToLocation = location => {
    this.mapView.animateToRegion({
      latitude: location.latitude,
      longitude: location.longitude,
      latitudeDelta: LATITUDE_DELTA,
      longitudeDelta: LONGITUDE_DELTA,
    });
  };

до:

  getCoordsFromName(loc) { 
     this.mapView.animateToRegion({
      ...this.state.region,
      latitude: loc.lat,
      longitude: loc.lng,
      latitudeDelta: LATITUDE_DELTA,
      longitudeDelta: LONGITUDE_DELTA,
    });
    this.setState(prevState => {
      return {
        region: {
          ...prevState.region,
          latitude: loc.lat,
          longitude: loc.lng,
        },
      };
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...