我已经尝试了一整天,但没有成功。一切正常,但是在地图上单击时我无法获得单个标记标题。单击每个标记时,我希望标记的标题显示在视图中,如下所示。
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>
答案 0 :(得分:0)
如果您只是想设置state.title
,则可以执行以下操作:
onPress={() => {this.setState({title: marker.title})}
假设您要从marker
对象上获取值的字段称为title
。