Die neuesten Änderungen an react-google-maps
scheinen die mapHolderRef
-Eigenschaft für den Zugriff auf die Karteninstanz entfernt zu haben. Wenn man sich die neuen Komponentenänderungen ansieht, sieht es so aus, als ob sie interne konstante Kontextreferenzen aufrufen, aber es scheint nicht so zu sein, als sollten diese leicht zugänglich gemacht werden.Zugreifen auf Kartenreferenz mit React-google-maps v6 +
Bevor die neueste Version konnte ich so etwas wie unten tun, um eine individuelle Steuerung der Karte hinzuzufügen:
paintControl(props) {
const { rendered } = this.state;
const position = props.position || google.maps.ControlPosition.TOP_CENTER;
const map = props.mapHolderRef.getMap(); // This no longer works
const controlElement = React.createElement(props.customControl, { map, ...props });
ReactDOM.render(controlElement, this.customControlDiv);
this.customControlDiv.style.zIndex = this.props.zIndex || 1;
if (!rendered) {
this.setState({ rendered: true },() => {
map.controls[position].push(this.customControlDiv);
});
}
}
Es Noten in der diese mapHolderRef
Eigenschaft Erwähnens 6.0 Release war nicht mehr zugänglich ist durch Requisiten , aber stattdessen durch den Kontext. Ich habe versucht, das zur Arbeit zu bringen, aber ich kann es nicht herausfinden.
Ich verwende derzeit die onMapLoad
Callback, um die React-Map-Instanz zu erhalten, aber die tatsächliche Google Map-Referenz zu bekommen scheint zu fehlen. Ich bin in der Lage gewesen, eine verwendbare Referenz zu erhalten, indem ich mache:
const map = props.mapHolderRef.context.__SECRET_MAP_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
Aber das scheint wirklich janky und falsch. Es erstellt auch mehrere Steuerelemente anstatt das eine zu verwalten, also ist etwas da draußen. Ich bin mir nicht sicher, ob etwas in den neuen Dokumenten fehlt oder ob dies in der neuen Version nicht verfügbar ist.
Hat jemand Glück gehabt, benutzerdefinierte Kontrollen oder Bestandteile zu erhalten, um mit der neuen react-google-maps
Version zu arbeiten?
Danke für Ihre Hilfe!