Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应+;Google Maps JS API,从状态动态呈现标记_Javascript_Google Maps_Reactjs_Google Maps Api 3 - Fatal编程技术网

Javascript 反应+;Google Maps JS API,从状态动态呈现标记

Javascript 反应+;Google Maps JS API,从状态动态呈现标记,javascript,google-maps,reactjs,google-maps-api-3,Javascript,Google Maps,Reactjs,Google Maps Api 3,在React中,我试图用标记填充我的google地图,其中每个标记由我所在州的一组对象确定。现在,如果我有一个由22个对象组成的reducedSites数组,那么其中只有1-3个将作为标记渲染。无论有多少对象处于状态,情况似乎都是如此 更新 将组件作为Map的子组件,并使用数组设置position属性 <Map google={this.props.google} style={{width: '100%', height: '100%', position: 'rel

在React中,我试图用标记填充我的google地图,其中每个标记由我所在州的一组对象确定。现在,如果我有一个由22个对象组成的reducedSites数组,那么其中只有1-3个将作为标记渲染。无论有多少对象处于状态,情况似乎都是如此

更新 将
组件作为Map的子组件,并使用数组设置position属性

  <Map google={this.props.google}
        style={{width: '100%', height: '100%', position: 'relative'}}
        className={'map'}
        zoom={14}>
      <Marker
        name={'SOMA'}
        position={{lat: this.state.markersArray[0].lat, lng: this.state.markersArray[0].lng}} />
     </Marker> 
    </Map>

确保在更改positions数组的值时调用setState(),以便React在每次更改值时自动呈现DOM。这就是动态渲染的方式

组件作为Map的子组件,并使用数组设置position属性

  <Map google={this.props.google}
        style={{width: '100%', height: '100%', position: 'relative'}}
        className={'map'}
        zoom={14}>
      <Marker
        name={'SOMA'}
        position={{lat: this.state.markersArray[0].lat, lng: this.state.markersArray[0].lng}} />
     </Marker> 
    </Map>

确保在更改positions数组的值时调用setState(),以便React在每次更改值时自动呈现DOM。这就是动态渲染的方式


parseInt
更改为
parseFloat

parseInt
更改为
parseFloat

我不确定如何集成,因为我没有使用这个react组件,只是使用原始的谷歌api。它可能会让你的生活更轻松,只需npm安装——保存google maps react,然后在文件顶部从“google maps react”导入地图。但您现有的代码到底有什么问题?它没有呈现任何标记。如果我调用
setMap:map
我会在使用forEach遍历标记时得到一个错误,该标记读取
InvalidValueError:setMap:不是map的实例;而不是StreetViewPanorama的实例
。但是,如果我删除forEach迭代,没有错误,但仍然没有渲染标记。我更愿意学习如何在没有预先配置组件的情况下集成googlemaps。哦!这是因为您执行setMap(map),map引用元素。我想你指的是setMap(this.map)。还有你返回google.maps.Marker({setMap:this.map})的地方,我不确定我将如何集成它,因为我没有使用这个react组件,只是使用原始的google api。它可能会让你的生活更轻松,只需npm安装——保存google maps react,然后在文件顶部从“google maps react”导入地图。但您现有的代码到底有什么问题?它没有呈现任何标记。如果我调用
setMap:map
我会在使用forEach遍历标记时得到一个错误,该标记读取
InvalidValueError:setMap:不是map的实例;而不是StreetViewPanorama的实例
。但是,如果我删除forEach迭代,没有错误,但仍然没有渲染标记。我更愿意学习如何在没有预先配置组件的情况下集成googlemaps。哦!这是因为您执行setMap(map),map引用元素。我想你指的是setMap(this.map)。以及返回google.maps.Marker({setMap:this.map})的位置,返回
new google.maps.Marker
的位置,MarkerOptions属性应该是
map
而不是
setMap
map:map
。这将在地图上绘制标记。那么
marker.setMap(map)
应该在你的代码中做什么呢?我就是这么做的,尽管状态包含超过20个标记,但仍然不会显示超过1-3个标记。你返回的地方是
new google.maps.marker
MarkerOptions属性应该是
map
而不是
setMap
map:map
。这将在地图上绘制标记。那么,
marker.setMap(map)
应该在代码中做什么呢?我只是这么做了,尽管状态包含20个以上的标记,但仍然不会显示超过1-3个标记。