React Leaflet: FlyToBounds программно при смене реквизита - PullRequest
0 голосов
/ 01 июня 2018

Компонент карты реакции-листовки отображается правильно на основе полилинии.Полилиния начинается идеально по центру в середине экрана.

Вот моя проблема: я хочу перенастроить карту на полилинию программно, потому что интерфейс занимает пространство карты, как кнопка переключения.

Без реакции Я знаю, как это сделать:

 map.invalidateSize();
 let bounds = L.latLngBounds(patharray);
 map.flyToBounds(bounds);

Но с реакцией у меня нет понятия, как получить доступ к этим методам.

Я пытался в моем компоненте, какthis:

ref={(ref) => this.mapRef = ref}

И затем используйте ссылку в ComponentWillReceiveProps () следующим образом:

componentWillReceiveProps() {
    const {flyToBounds} = this.props

    console.log(this.mapRef)

    if (flyToBounds) {
      this.mapRef.current.leafletElement.invalidateSize()
      this.mapRef.current.leafletElement.flyToBounds(this.bounds)
    }
 }

Однако функции invalidateSize и flyToBounds недоступны.Итак, я застрял.

...