BK1*_*K19 7 google-maps google-maps-markers ios reactjs react-native
我试过在MapView.Marker Tab中调用onPress方法,但它不起作用.
此跟踪标记点击的方法:
markerClick(){
console.log("Marker was clicked");
}
Run Code Online (Sandbox Code Playgroud)
在render方法中,Map组件被声明为在地图上显示地图和标记.在onPress方法中,我调用了自定义方法markerClicked().我仍然没有得到结果.
render() {
return (
<View style={styles.container}>
<MapView style={styles.map}
initialRegion={{
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.0,
longitudeDelta: 0.0,
}}
>
{this.state.markers.map(marker => (
<MapView.Marker
coordinate={marker.coordinate}
title={marker.title}
description={marker.description}
onPress={() => this.markerClick()}
/>
))}
</MapView>
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
Ani*_*ake 13
你只需要添加<MapView.Callout>的<MapView.Marker>标签.自定义标注 - 您可以根据需要自定义标记信息点击窗口.
我已经习惯TouchableHighlight了marker info window click,所以你可以点击用户将用户重定向到其他屏幕custom callout.
<View style={styles.mainContainer}>
<MapView style={styles.map}
initialRegion={{
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.0,
longitudeDelta: 0.0,
}}>
{this.state.markers.map((marker) => (
<MapView.Marker
coordinate={marker.coordinate}
title={marker.title}
description={marker.description}>
<MapView.Callout tooltip style={styles.customView}>
<TouchableHighlight onPress= {()=>this.markerClick()} underlayColor='#dddddd'>
<View style={styles.calloutText}>
<Text>{marker.title}{"\n"}{marker.description}</Text>
</View>
</TouchableHighlight>
</MapView.Callout>
</MapView.Marker>
))}
</MapView>
</View>
Run Code Online (Sandbox Code Playgroud)
小智 9
要添加到Anil的答案,您可以使用Marker上的'onCalloutPress'回调来处理标注按下事件,这样您就不需要在标注中使用TouchableHighlight:
<MapView.Marker
coordinate={marker.coordinate}
title={marker.title}
description={marker.description}
onCalloutPress={this.markerClick}>
<MapView.Callout tooltip style={styles.customView}>
<View style={styles.calloutText}>
<Text>{marker.title}{"\n"}{marker.description}</Text>
</View>
</MapView.Callout>
</MapView.Marker>
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试在标记中添加“键”:
{this.state.markers.map((marker, i) => (
<MapView.Marker
key={i}
coordinate={marker.coordinate}
title={marker.title}
description={marker.description}
onPress={() => this.markerClick()}
/>
))}
Run Code Online (Sandbox Code Playgroud)
只需使用 'i' 进行测试,您应该使用唯一的 id
| 归档时间: |
|
| 查看次数: |
11710 次 |
| 最近记录: |