From 317b5c099906c5638fa367eb7b36bbd637e80a52 Mon Sep 17 00:00:00 2001 From: Michael Diego <6419886+itsmichaeldiego@users.noreply.github.com> Date: Fri, 21 Sep 2018 12:51:04 +0300 Subject: [PATCH] Revert 643 fix/map context (#645) * Revert "Bump version to 1.0.7 (#644)" This reverts commit 800092ae6f57648cf0ed74625a90752283ac1af4. * Revert "Add passive scroll (#631)" This reverts commit 40c8f67e78c1b851f5d35ef832ff5ef728db86af. * Revert "Use React 16 portal to render map overlay (#643)" This reverts commit b121bb673e9dae5ae558c8c98218f7fc02029da2. --- src/google_map.js | 54 ++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/src/google_map.js b/src/google_map.js index 180ff6a..14ff7d3 100644 --- a/src/google_map.js +++ b/src/google_map.js @@ -240,7 +240,7 @@ export default class GoogleMap extends Component { this.zoomAnimationInProgress_ = false; this.state = { - overlay: null, + overlayCreated: false, }; } @@ -593,7 +593,7 @@ export default class GoogleMap extends Component { : '2000px'; const div = document.createElement('div'); - this.overlay = div; + this.div = div; div.style.backgroundColor = 'transparent'; div.style.position = 'absolute'; div.style.left = '0px'; @@ -607,21 +607,29 @@ export default class GoogleMap extends Component { maps, overlay.getProjection() ); - - this_.setState(state => ({ - ...state, - overlay: div, - })); + ReactDOM.unstable_renderSubtreeIntoContainer( + this_, + , + div, + // remove prerendered markers + () => this_.setState({ overlayCreated: true }) + ); }, onRemove() { - this_.setState(state => ({ - ...state, - overlay: null, - })); - - if (this.overlay) { - ReactDOM.unmountComponentAtNode(this.overlay); + if (this.div) { + ReactDOM.unmountComponentAtNode(this.div); } }, @@ -1060,7 +1068,7 @@ export default class GoogleMap extends Component { }; render() { - const mapMarkerPrerender = !this.state.overlay + const mapMarkerPrerender = !this.state.overlayCreated ? - {this.state.overlay && - ReactDOM.createPortal( - , - this.state.overlay - )} {/* render markers before map load done */} {mapMarkerPrerender}