当前位置: 首页 > 知识库问答 >
问题:

用React显示标记列表

田昊天
2023-03-14

我试图显示存储在mongodb数据库中的lat和lng的标记列表。我正在使用google-maps-react,这是我的子地图组件

import {
  Map,
  InfoWindow,
  Marker,
  GoogleApiWrapper,
  Polygon
} from 'google-maps-react';
import React, { Component } from 'react';
export class MapContainer extends Component {
  render() {
    const coords = this.props.initialCenter;
    const position = this.props.position;
    const paths = this.props.paths;
    const style = this.props.style;
    const center = this.props.center;
    console.log(this.props);
    return (
      <Map
        google={this.props.google}
        zoom={18}
        initialCenter={coords}
        style={style}
        center={center}
      >
        <Marker
          onClick={this.onMarkerClick}
          name={'Current location'}
          position={position}
        />
        <InfoWindow onClose={this.onInfoWindowClose}>
          <div>
            <h1>Test</h1>
          </div>
        </InfoWindow>
        <Polygon
          paths={paths}
          strokeColor='#0000FF'
          strokeOpacity={0.8}
          strokeWeight={2}
          fillColor='#0000FF'
          fillOpacity={0.35}
        />
      </Map>
    );
  }
}
export default GoogleApiWrapper({
  apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_TEST
})(MapContainer);

我从这里的endpoint得到坐标

const centers = this.props.places.places.map(place => {
      return {
        lat: place.center[0],
        lng: place.center[1]
      };
    });
<MapContainer
          initialCenter={initialCenter}
          position={position}
          paths={paths}
          style={style}
          center={center}
        />
<Marker
          onClick={this.onMarkerClick}
          name={'Current location'}
          position={{ position }}
        />
<MapContainer
          initialCenter={initialCenter}
          paths={paths}
          style={style}
          center={center}
          position={centers.map(p => (
            <Marker
              onClick={() => this.onMarkerClick(p)}
              name={'Current location'} // You should probably have a "name" field for each positions
              position={p}
            />
          ))}
        ></MapContainer>
const centers = this.props.places.places.map(place => {
      return {
        lat: place.center[0],
        lng: place.center[1]
      };
    });

仍未显示

共有1个答案

焦学海
2023-03-14

您需要将position数组作为道具发送到组件,然后像下面这样呈现它们:

this.props.positions.map(p => <Marker
  onClick={() => this.onMarkerClick(p)}
  name={'Current location'} // You should probably have a "name" field for each positions
  position={p}
/>)
 类似资料:
  • 当我点击google maps标记时,它会注册点击,但我无法在状态改变后显示InfoWindow。 尝试在单击时设置/读取更新的状态 ''' 我期望google map标记会出现某种类型的InfowWindow,但相反,infowWindowOpened返回的是未定义的

  • 我正在构建代码段块,以便在

  • 我正在使用OpenStreetMap创建一个简单的地图应用程序。我已经在MapView中打开了地图,并在地图上添加了标记。这一切都很顺利。当用户点击一个标记时,会弹出一个描述框,其中包含该地点的名称、描述和imageview。 主要活动: MyItemizedOverlay类: 清单: 请导入osmdroid-android-4.1.jar和slf4j-android-1.5.8.jar库并运行该

  • 我希望将行插入到表中,但这些行被回显,但没有显示在表中。 项目的HTML代码为: 项目的main.js文件是:它从下面的PHP文件中取数据: 项目的PHP代码是:

  • 这个代码过去是有效的,但我不确定我改变了什么,或者在传单中改变了什么来打破它,但没有显示标记。数据正确返回,正在创建标记对象,但未显示任何标记。我在这里不知所措。使用0.7.2。让我给你看看代码。。。 } 一切都应该很好。服务器正确返回信息。列表中始终有13项(预期行为),我将plostlist[I]的内容以及plotmarker对象打印到控制台。 以下是plotlist[i]的输出: 一切看起来

  • 在React JS组件中,我正在渲染一个项目列表(食谱),使用来自数组的JS映射函数,从应用程序父组件传入。每个项目都有一个子列表(配料),同样使用地图功能呈现。 我想要的是,当你点击菜谱标题时,显示/隐藏配料的子列表。我在标题上使用了onClick函数,将CSS设置为显示none或block,但出现以下错误: 无法读取未定义的属性openRecipe 这是我的代码: 另外,我试图在这里使用CSS