我能够获得包含标记坐标的对象。但是,渲染它时,如标题所示,出现了错误。
try {
const value = await AsyncStorage.getItem('@myData')
if(value !== null) {
const parseData = JSON.parse(value);
const llat = parseFloat(parseData[0].location[0].lat);
const llon = parseFloat(parseData[0].location[0].lon);
const locs = parseData[0].location;
const markersS = [];
for (let i =0; i < locs.length; i++){
markersS.push({
coordinate: {
latitude: parseFloat(locs[i].lat),
longitude: parseFloat(locs[i].lon)
}
})
}
this.setState({
lat : llat,
lon :llon,
region: {
latitude: llat,
longitude: llon,
latitudeDelta: 0.015,
longitudeDelta: 0.0121
},
location : locs,
ready: true,
markers: markersS
},()=>{
alert(JSON.stringify(this.state.markers))
})
}
} catch(e) {
alert(e)
}
然后像这样渲染:
{this.state.ready && this.state.markers !=null && this.state.markers((item, index) => {
<Marker
coordinate = {item.coordinate}
pinColor = {'blue'}
description = {'Home Address'}
/>
})
}
我希望将标记加载到地图上
答案 0 :(得分:1)
问题与this.state.markers((item, index) => {
有关。您应该改为使用map
函数,如下所示
this.state.markers.map((item, index) => {
...