Компонент карты реакции-листовки отображается правильно на основе полилинии.Полилиния начинается идеально по центру в середине экрана.
Вот моя проблема: я хочу перенастроить карту на полилинию программно, потому что интерфейс занимает пространство карты, как кнопка переключения.
Без реакции Я знаю, как это сделать:
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 недоступны.Итак, я застрял.