Я действительно рву на себе волосы из-за того, что пытаюсь сделать так, чтобы mapview в моем приложении динамически обновлялась. Сначала я попробовал сделать следующее:
render()
{
const neoMarker = (lat, long, title, desc) => {
<MapView.Marker
coordinate={{latitude: lat,
longitude: long,}}
title={title}
description={desc}
onPress={() => this.setState({jvisible: true})}>
<FAB
small
icon="add"
onPress={() => this.setState({jvisible: true})}/>
</MapView.Marker>
}
var noGuest = 5;
var test = 37.43538;
for(let i = 0; i < noGuest; i++){
markerL.push(neoMarker(test, -122.4324, "New Job", "Testing Marker List"));
test = test + 0.01000;
}
}
return (
<View style={styles.container}>
<MapView
style={{ flex: 1 }}
initialRegion={{
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}>
{markerL}
</MapView>
Это не сработало, и карта появилась без маркеров, поэтому я попытался сделать то же самое, что и раньше, за исключением использования индекса, в данном случае markerL[0]
. Это тоже не сработало. Итак, я наконец попытался заставить его заполнить make, вызвав саму функцию neoMarker
вместо {markerL}
с некоторым общим вводом, и mapview по-прежнему не отображал никаких маркеров.
Когда маркеры определены явно, они появляются, но это не практичный метод вне текущей сборки разработчика.
Следовательно, не разрешает ли MapView явным образом списки неявных маркеров?
PS: я использую Expo (https://expo.io/) для тестирования и отладки моего кода на мобильном устройстве. .