Я использую MapView и хочу отобразить некоторые маркеры на карте. Список, который я получаю с реквизитами, приходит нормально, так как я использую console.log для проверки, но карта не обновляется, когда сохраняет свое прежнее состояние. Когда я рендеринг во второй раз, то он обновляется. Почему это происходит? Массив списка получен правильно, но компонент MapView обновляется после второго рендеринга. Я не знаю, как я могу обновить компонент, когда появится список.
Например: когда список содержит 3 маркера (с использованием console.log), на картах отображается 0 маркеров, а после повторного рендеринга - 3 маркера. Компонент всегда на один шаг позади
import { Image, Text, StyleSheet, ScrollView, View, TouchableOpacity, ActivityIndicator } from 'react-native';
export default class MapComponent extends Component {
constructor(props) {
super(props);
}
render() {
console.log(this.props.list)
let position=null
position = this.props.list.map((maps, key) =>{
var latitudine = parseFloat(maps.latitudine);
var longitudine = parseFloat(maps.longitudine);
return (
<Marker key={key} coordinate={{ latitude: latitudine, longitude: longitudine }} cluster={true}>
<Image source={require('../../../assets/png/posizione_mappa.png')} style={{ height: 60, width: 60 }} />
</Marker>
)
})
return (
<View>
<MapView
provider={PROVIDER_GOOGLE}
clustering={true}
clusterColor='#db432b'
clusterTextColor='white'
clusterBorderColor='#f29485'
clusterBorderWidth={10}
showsUserLocation={true}
customMapStyle={mapStyle}
showsMyLocationButton={false}
style={styles.map}
>
{position}
</MapView>
);
}
}
}