问题描述
我一整天都在尝试,但没有成功。 一切正常,但在地图上单击时我无法获得单个标记标题。 当点击每个标记时,我希望标记的标题显示在视图中,如下所示。
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}
希望这可以帮助。