В вашем коде есть несколько ошибок:
Вы не закрываете toggleHiddden1
с }
. Более того, вы называете это как toggleHiddden
в компоненте. Вы должны использовать одно имя для метода.
экземпляр карты получен из
let mapInst = this.mapRef.current.leafletElement;
, а не из let mapInst = this.refs.map.leafletElement;
Затем вы можете позвонить fitBounds()
Ссылка в листе карты реакции должна быть ref={this.mapRef}
, а не ref="map"
Поместите ключ, когда вы зацикливаетесь на маркерах.
Просто использовал URL-адрес тайлов карты openstreet, чтобы иметь возможность продемонстрировать демо.
Редактировать Чтобы использовать одновременно fitBounds и getBounds для маркера, вам нужно обернуть маркеры l oop с помощью FeatureGroup
и дать ему ссылку, а затем сделать
let mapInst = this.mapRef.current.leafletElement;
const group = this.groupRef.current.leafletElement; //get native featureGroup instance
mapInst.fitBounds(group.getBounds());
внутри вашего componentDidMount
и тогда вы получите желаемый результат.
Демо