繁体   English   中英

在React Native中通过.map()生成时,为什么我的地图标记没有渲染?

[英]Why is my map marker not rendering when generated via .map() in React Native?

通过Wifi在Android外部设备上将React Native与react-native-maps一起使用。

我制作了一个名为MapMarker的组件,该组件接受道具的titlecoordinates 在我的<MapView></MapView> ,可以这样渲染它:

<MapMarker
  coordinates={{
      longitude: -4.516095,
      latitude: 55.679897
  }}
  title="James"
/>

但是我想动态渲染标记,所以我将状态设置为:

    mapMarkers: [
        {
            latLng: {
                latitude: 55.679897,
                longitude: -4.516095,
            },
            title: "James"
        }
    ]

当我尝试使用.map()映射此状态时,它似乎没有碰到组件。 我知道这是因为我在<Marker>组件中有一个console.warn() 这就是我使用.map()函数的方式:

 {this.state.mapMarkers.map((marker) => {
    <MapMarker
       coordinates={{
           longitude: marker.latLng.longitude,
           latitude: marker.latLng.latitude
       }}
       title={marker.title}
   />
 })}

使用第二种方法,不会触发console.warn() (放置在componentDidMount() )。 我已将this.state.mapMarkers[0].longitude和纬度转储到主屏幕上,并且它们都是正确的/可见的。

从Vue的背景来看,我不需要100%地使用.map()进行渲染组件的不同处理。

确保您返回正在创建的React组件。 最简单的方法是利用箭头功能并使用括号而不是功能括号。

 {this.state.mapMarkers.map((marker) => (
    <MapMarker
       coordinates={{
           longitude: marker.latLng.longitude,
           latitude: marker.latLng.latitude
       }}
       title={marker.title}
   />
 ))}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM