我正在为本机反应项目使用react-native-maps。我在地图上显示了从UI分配和取消分配的标记。我使用API来获取标记数据并在地图中显示它们。每个标记都有一个标题和描述,点击标记后会显示。
<MapView.Marker
coordinate={{ latitude:lat, longitude:lon }}
title={title}
description={desc}
image={image}
onCalloutPress={this.onPress()}>
</MapView.Marker>
但是,当我点击一个标记然后从UI中删除该标记时。我会收到通知并重新加载新数据。但是callOut没有被删除而是转到最近的标记。
当我重新加载标记数据时,如何解除或删除callOut?
注意:我无法重新加载整个地图,所以我使用fetch来获取最新数据并更新它们。
答案 0 :(得分:1)
以下适用于我。当你需要隐藏它时尝试拨打this.marker.hideCallout()
怎么样?
<MapView.Marker
coordinate={coord}
ref={_marker => {
this.marker = _marker;
}}
onPress={() => {}}
onCalloutPress={() => {
this.marker.hideCallout();
}}>
<Image
source={require(img)}
style={{ width: 60, height: 60 }}
/>
<View>
<Text>
marker text
</Text>
</View>
<MapView.Callout
tooltip={true}>
<View>
<Text>
callout text
</Text>
</View>
</MapView.Callout>
</MapView.Marker>