标记组件未显示在 React JS 中的 Google 地图上

Posted

技术标签:

【中文标题】标记组件未显示在 React JS 中的 Google 地图上【英文标题】:Marker components not showing on Google Maps in React JS 【发布时间】:2021-07-12 07:07:45 【问题描述】:

我对 React JS 比较陌生。但是,我似乎无法弄清楚为什么我的 GoogleMap 组件上没有显示标记。

const MyMapComponent = withGoogleMap((props) => 
            return (
                <GoogleMap
                    defaultZoom=8
                    defaultCenter=lat: 43.856, lng: 18.413
                >
                    
                    tasks.map(task => 
                        let trackers = task.userTrackers;
                        console.log(trackers);
                        trackers.map(tracker => (
                            <Marker
                                //key=tracker.id
                                position=
                                    lat: tracker.locationLatitude,
                                    lng: tracker.locationLongitutde
                                
                                icon=url: yellowMarkerURL
                            >
                            </Marker>
                        ))
                    
                    )
                    
                </GoogleMap>
            )
        
    );

“tasks”是我从数据库中获取的一个数组,它包含一个数组“userTrackers”。我在这段代码中使用的 console.log 命令会写出我所期望的所有内容(不要担心经度处的拼写错误,这就是它在数据库中的样子)。我觉得map方法不行或者她里面有什么东西,但是我好像搞不明白是什么。

【问题讨论】:

【参考方案1】:

tasks.map(task =&gt; ... 中使用花括号&lt;Marker&gt; 组件似乎存在问题。它甚至没有显示任何错误。这似乎是图书馆本身的问题。一种解决方法是使用() 并在外面声明任何其他内容。例如:

链接:https://stackblitz.com/edit/sample-simple-map-withjsonfile-g1lpuy


    import React,  Component  from "react";
    import  withGoogleMap, GoogleMap, Marker  from "react-google-maps";
    import data from "./data.json";
    
    function Map() 
      const GoogleMapExample = withGoogleMap(props => (
        <GoogleMap
          defaultCenter= lat: 40.756795, lng: -73.954298 
          defaultZoom=13
        >
          data.map((location, i) => (
            //if this is contained with , markers won't show up
            <Marker
              key=i + 1
              position= lat: location.lat, lng: location.lng 
            />
          ))
        </GoogleMap>
      ));
    
      return (
        <div>
          <GoogleMapExample
            containerElement=<div style= height: `500px`, width: "500px"  />
            mapElement=<div style= height: `100%`  />
          />
        </div>
      );
    
    
    export default Map;

【讨论】:

以上是关于标记组件未显示在 React JS 中的 Google 地图上的主要内容,如果未能解决你的问题,请参考以下文章

this.props 在 React 组件中的箭头函数中显示为未定义

简单组件未呈现:React js

在 React JS 中的组件之间切换

如何在react js中的onclick事件上隐藏和显示路由器组件

如何呈现包含打开和未关闭标签的组件?反应.js

React Native mapview:标记未在IOS上显示