Я обновляю несколько позиций маркеров на основе состояния массива маркеров. Поэтому, когда я обновляю его с помощью setState, функция рендеринга срабатывает как обычно, и mapview повторно отображает. Поскольку у него есть начальный регион и свойства региона, он автоматически фокусируется на местоположении игрока в зависимости от его состояния (я не хочу этого, я хочу это только при начальной загрузке).
Как обновить положение маркеров без повторного рендеринга карты?
render() {
return (
<MapView
initialRegion={this.state.playerLocation}
region={this.state.playerLocation}
style={ styles.map }>
{this.renderMarkers()}
</MapView>
);
}
renderMarkers = () => {
return(
this.state.markers.map(marker=>{
return(
<Marker coordinate = {{
latitude: marker.lat,
longitude: marker.long
}}
title={marker.id}/>
)
})
}