Leaflet Control that renders a react component onto the map.
The control is provided as a UMD module.
The essence of it is 10 simple lines of code, you should just copy, paste and customize it. Or you could grab it from npm:
npm i leaflet-control-react
Basic usage:
var label = 'Hello Leaflet!';
function getElement () {
return React.DOM.div({ className: 'leaflet-control-with-react' }, label);
}
var reactControl = L.control.react({
position: 'bottomleft',
getElement: getElement
}).addTo(map);
/* Change some props, and re-render: */
label = 'Hello React!';
reactControl.render();The getElement function gets the leaflet map as its argument.
The react components are rendered into a div with leaflet-control-react, and the default leaflet-control classes.
getElement - A function with a single L.Map argument. The return value is rendered as:
ReactDOM.render(this.options.getElement(this._map), this._container);
when the control is added to the map, and anytime the .render() function is called.
position - Inherited from L.Control
render() - Re-renders the react component. Could be called to change top-level props for example.
You should be able to use the react event system, since it's just a thin wrapper around your react component.
ISC