在重新加载时删除标记时,call-native-maps中的callout视图不会消失

时间:2018-03-28 09:33:56

标签: javascript reactjs google-maps react-native react-native-maps

我正在为本机反应项目使用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来获取最新数据并更新它们。

1 个答案:

答案 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>