Я действительно рву волосы, пытаясь сделать отображение карты в моем приложении динамически перенасыщенным. Сначала я попытался сделать следующее:
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}
с некоторым общим вводом, и представление карты все равно не отображало бы никаких маркеров.
Когда маркеры явно определены, они появляются, но это не практично
метод вне текущей сборки dev.
Следовательно, MapView явно не допускает списки неявных маркеров?
PS: я использую Expo (https://expo.io/) для тестирования и отладки моего кода на мобильном телефоне.