Skip to content

Overlay should not draw before it is added to the map #27

@shipstar

Description

@shipstar

I ran into a bug (I think) with ReactOverlayView. Here's what I think is happening:

  1. MyReactComponent renders a Map component with overlays.
  2. Before the Google Maps JS can add the overlays to the Google Map, MyReactComponent#setState triggers a re-render (because of Flux in my case).
  3. React calls ReactOverlayView#componentDidUpdate, which calls MapOverlayView#draw. (Note that MapOverlayView#add has still not been called.)
  4. MapOverlayView#getProjection returns undefined, so the following error appears: Uncaught TypeError: Cannot read property 'fromLatLngToDivPixel' of undefined

I think the fix is pretty simple -- have ReactOverlayView#componentDidUpdate check whether __node has a _containerElement before drawing (which means that onAdd has been called and drawing is 👍 ).

Pull request incoming, but feel free to push back if there's a better solution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions