0

我在谷歌地图上显示图标时遇到问题。这是我的代码:

import React, { Component } from 'react'
import { compose, withProps, withStateHandlers } from 'recompose'
import { withScriptjs, withGoogleMap, GoogleMap, Marker, InfoWindow } from 'react-google-maps'
import MapStyles from './data/MapStyles'

export const Map = compose(
    withStateHandlers(() => ({
    isOpen: false,
  }), {
    onToggleOpen: ({ isOpen }) => () => ({
      isOpen: !isOpen,
    })
  }),
  withScriptjs,
  withGoogleMap
)(props => {
        return (
        <GoogleMap
            defaultZoom={13}
            defaultCenter={{ lat: 52.229676, lng: 21.012229 }}
            defaultOptions={{ styles: MapStyles }}
            mapTypeControl={false}
        >{ props.markers.map(marker => {
            console.log(marker.location);
            <Marker
                {...marker}
                key={marker.place_id}
                position={marker.location}
                title={marker.title}
                icon={{
                    url: 'icons/icon.png'
                  }}
                onClick={props.onToggleOpen}
                >
                {props.isOpen && 
                <InfoWindow onCloseClick={props.onToggleOpen}>
                    <div>Open</div>
                </InfoWindow>}
            </Marker>
        })}
        </GoogleMap>

);})

export default Map

标记的位置由 console.log 在控制台中显示,但它们不会显示在地图上……我不知道为什么……也许你们中的一些人知道,为什么会发生这种情况……这里是链接到 Github 上的这个项目:https ://github.com/hajczek/Neighborhood---Warsaw-Cultural-Map

感谢您的任何提示。

4

1 回答 1

1

return您在地图投影中缺少 a -

>{ props.markers.map(marker => {
            console.log(marker.location);
            <Marker

return在前面加一个<Marker

>{ props.markers.map(marker => {
            console.log(marker.location);
            return <Marker

代码沙盒上的工作示例

于 2018-05-23T10:49:04.547 回答