對react-google-maps
的最新更改似乎已刪除mapHolderRef
屬性以訪問地圖實例。看看新的組件更改,它看起來像他們調用內部常量上下文引用,但它似乎不應該使用/容易暴露。使用React-google-maps訪問地圖參考v6 +
最新版本之前,我能夠這樣做下面一個自定義的控件添加到地圖:
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);
});
}
}
有沒有在6.0版本中提到這一點,mapHolderRef
財產筆記不再通過道具訪問,而是通過上下文來代替。我試圖讓它工作,但似乎無法弄清楚。
我目前使用onMapLoad
回調得到反應地圖實例,但得到實際的谷歌地圖參考似乎缺少。我已經能夠通過這樣做得到一個可用的參考:
const map = props.mapHolderRef.context.__SECRET_MAP_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
但是,這似乎真的很難和不正確。它還創建了多個控件,而不是保持一個,所以有些東西就在那裏。不確定新文檔中是否存在我遺漏的內容,或者如果這在新版本中不可用。
有沒有人有運氣獲得自定義控件或組件與新的react-google-maps
版本?
感謝您的幫助!