我有一个互动移动应用程序,并使用react-native-maps,我想在应用程序启动时加载标记,但出现latlng cannot be null - a position is required
错误。
我想做的是填充数组标记
export default class MapScreen extends React.Component {
constructor(props) {
super(props);
this.watchID = navigator.geolocation.watchPosition((position) => {
console.log(position.coords) // get your showUserLocation here
},
(error) => console.log(error.message), GEOLOCATION_SETTINGS
)
this.state = {
region: {
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
},
markers: [{
title: 'FINISH',
description: 'You have found me!',
coordinates: {
latitude: 14.548100,
longitude: 121.049906
},
}]
}
}
随后将其调用:
{this.state.markers.map(marker => (
<Marker
key={marker.key}
coordinate={marker.coordinate}
pinColor={marker.color}
>
{/* Callout est l'infowindow */}
<Callout style={styles.plainView}>
<View>
{/* Texte par défaut pour le moment, à changer (voir ticket MARKER3) */}
<Text>
Nom + Coordonnées + click here to see info
</Text>
</View>
</Callout>
</Marker>
))}
我猜我在markers[]
中提供信息的方式是错误的,但是我尝试了我能想到的一切,包括
markers: [{
latlng: {
latitude: 14.548100,
longitude: 121.049906
},
}]
仍然告诉我latlng为空。
问题真的是输入语法吗?如何找到正确的一个?
答案 0 :(得分:1)
您在coordinate={marker.coordinate}
上输入了一个错字,应该像在状态上定义的一样coordinate={marker.coordinates}
。
markers: [{
title: 'FINISH',
description: 'You have found me!',
coordinates: {
latitude: 14.548100,
longitude: 121.049906
},
}]
您还错过了州的key
和color
。
markers: [{
title: 'FINISH',
description: 'You have found me!',
coordinates: {
latitude: 14.548100,
longitude: 121.049906
},
key: 'YOUR_KEY_VALUE',
color: 'YOUR_COLOR_VALUE'
}]