问题描述
我一整天都在尝试,但没有成功。 一切正常,但在地图上单击时我无法获得单个标记标题。 当点击每个标记时,我希望标记的标题显示在视图中,如下所示。
    constructor(props){
      this.state = {
      locObject: [],
      title: '',
    }      
    {this.state.LocObject.map((marker, index) => {
    return (
        <MapView.Marker
          key={index}
          coordinate={{
            latitude: parseFloat(marker.altitude),
            longitude: parseFloat(marker.longitude),
          }}
          onCalloutPress={() => console.log("It is working")}
          image={markerImage}>
        <MapView.Callout>
            <TouchableHighlight
              style={styles.calloutStyle}
              onPress={() => this.markerClickHandler}
              underlayColor="#000"
            >
              <View style={styles.calloutText}>
                <Text style={styles.style_marker_text}>
                  {marker.lokation}
                  {"\n"}
                  {marker.altitude}
                </Text>
              </View>
            </TouchableHighlight>
          </MapView.Callout>
        </MapView.Marker>
      );
    })
}
<Text>{this.state.title}</Text>
1楼 
  
    Kai 
    1 
    2019-02-20 23:28:23
  
 
 
    如果您只是想设置state.title ,您可以执行以下操作:
onPress={() => {this.setState({title: marker.title})}
 
    假设您从marker对象上获取值的字段称为title 。
2楼 
  
    abewkayew 
    0 
    2020-01-07 11:36:06
  
 
 在markerClickHandler 方法中,您应该添加以下代码行。
{this.setState({title: marker.title}
希望这可以帮助。