Плагин Leaflet внутри React-Leaflet

Я хотел бы использовать плагин Leaflet.VectorGrid, и у меня есть вопрос. Есть ли пример создания кастомного компонента в React-Leaflet?


person anime    schedule 02.06.2020    source источник


Ответы (1)


React-Leaflet стремится предоставить все элементы управления и уровни, предоставляемые Leaflet, но он не поддерживает какие-либо плагины Leaflet.

Для создания пользовательских компонентов требуются следующие шаги:

1.) Расширить абстрактный класс, предоставленный React-Leaflet

2.) Реализовать метод createLeafletElement (props: Object): Object для создания Leaflet-элемента. Например,

createLeafletElement(opts) {
const MapInfo = L.Control.extend({
  onAdd: (map) => {
    this.panelDiv = L.DomUtil.create('div', 'info');
    return this.panelDiv;
  }
});
return new MapInfo({ position: 'bottomleft' });
}

3.) Использование withLeaflet - Оберните ваш компонент. Например,

export default withLeaflet(MapInfo);

Этот пример поможет вам - https://codesandbox.io/s/p5zzmnlk8j

Также обратитесь к этой документации https://react-leaflet.js.org/docs/en/custom-components.html

person Thomas Martin    schedule 02.06.2020
comment
Этот ответ устарел в React-Leaflet версии 3. withLeaflet устарел, поэтому вам нужно будет использовать React-Leaflet Core API. - person jharris711; 12.04.2021