Я хотел бы использовать плагин Leaflet.VectorGrid, и у меня есть вопрос. Есть ли пример создания кастомного компонента в React-Leaflet?
Плагин Leaflet внутри React-Leaflet
Ответы (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
Этот ответ устарел в React-Leaflet версии 3.
withLeaflet
устарел, поэтому вам нужно будет использовать React-Leaflet Core API.
- person jharris711; 12.04.2021