У нас есть несколько координат, которые нам нужно отобразить на карте с помощью маркеров. Маркер, выбранный пользователем, должен быть помечен как активный и иметь некоторые операции, выполняемые для других функций.
Когда я обновляю состояние в onPress метке маркера, все маркеры мерцают, вероятно из-за повторного рендеринга. Я также добавил уникальный ключ, но он, похоже, не работает.
У меня есть массив с именем markers , который используется для визуализации маркеров на карте.
return markers.map(marker => (
<Marker
tracksViewChanges={false}
tracksInfoWindowChanges={false}
animationEnabled={false}
identifier={marker.id}
key={marker.id}
coordinate={{
latitude: marker.location.latitude,
longitude: marker.location.longitude,
}}
onPress={() => {
setActiveMarker(marker.id); // State update using hook
}}>
//Rendering the custom marker image here
{if(activeMarker === marker.id)
(<Icon
width={22}
height={32}
source={require('../../assets/images/marker.png')})
else
(<Icon
width={22}
height={32}
source={require('../../assets/images/activeMarker.png')})
}
/>
</Marker>
));
Версия реагирующей карты: 0.27.1