我有一个带有一个标记的静态地图,并且希望始终显示标记标注。
有些人建议使用MapView
's onLayout
,但这在一段时间内不起作用。
我正在尝试解决onRegionChangeComplete
有时有效的问题(它会被调用一次或两次),但在大约 10% 的情况下,它会陷入循环并一次又一次地被调用,直到应用程序崩溃。这仅在 iOS 上发生。
这是我的代码
setMarkerRef = (ref) => {
this.marker = ref
}
showCallout = () => {
this.marker.showCallout()
}
render() {
...
<MapView
style={{...StyleSheet.absoluteFillObject}}
region={{
latitude: latitude,
longitude: longitude,
latitudeDelta: 0.00922,
longitudeDelta: 0.00421,
}}
showsMyLocationButton={false}
showsCompass={false}
showsTraffic={false}
zoomEnabled={false}
rotateEnabled={false}
scrollEnabled={false}
pitchEnabled={false}
onRegionChangeComplete={this.showCallout}
onPress={this.openMap}
>
<MapView.Marker
coordinate={{
latitude: latitude,
longitude: longitude,
}}
title={address}
ref={this.setMarkerRef}
/>
</MapView>
知道我的方法有什么问题吗?有没有人有更好的解决方法?
编辑:我希望组件看起来像这样,而不需要用户交互。只需显示地图、标记和标注。