выноска View в react-native-maps не исчезает, когда маркер удаляется при перезагрузке

Я использую react-native-maps для моего проекта, поддерживающего реакцию. Я показываю на карте маркеры, которые назначаются и не назначаются в пользовательском интерфейсе. Я использую API для получения данных маркеров и отображения их на картах. У каждого маркера есть заголовок и описание, которое отображается при нажатии на маркер.

                   <MapView.Marker
                        coordinate={{ latitude:lat, longitude:lon }}
                        title={title}
                        description={desc}
                        image={image}
                        onCalloutPress={this.onPress()}>
                    </MapView.Marker>

Но когда я нажимаю на маркер, а затем удаляю этот маркер из пользовательского интерфейса. Получаю уведомление и перезагружаюсь с новыми данными. но callOut не удаляется, а переходит к ближайшему маркеру.

Как я могу отклонить или удалить callOut при перезагрузке данных маркера?

Примечание: я не могу перезагрузить все карты, поэтому я использую выборку, чтобы получить последние данные и обновить их.


person HungrySoul    schedule 28.03.2018    source источник


Ответы (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>
person Yossi    schedule 13.06.2018