下面的函数从api中检索坐标并按下数组中的坐标。
function getMarkers() {
fetch('http://xxxxxx').then(function(response) {
// Convert to JSON
return response.json();
}).then(function(j) {
var number = j.Objects.length;
var markers = [];
for(var x = 0; x < number; x++) {
markers.push("{latlng: {latitude: \""+j.Objects[0].WGS84_Y+"\", longitude: \""+j.Objects[0].WGS84_X+"}, title:\""+x+"\", description:\"2\"}, key:\""+x+" },");
}
return(markers);
});
}
下面的课程应该检索来自上述功能的标记。
class Home extends Component {
constructor() {
super();
const markers = getMarkers();
this.state = {markers:[{markers}]}
} ....
这不起作用。我得到错误:“undefined不是一个对象(评估this.state.markers.map”
仅当我在构造函数中手动放置数组时才有效,如下所示:
this.state = {markers:[
{latlng: {latitude: 52.786894, longitude: 6.118069}, title: "vic", description: "voc",key:"0"}
{latlng: {latitude: 52.796894, longitude: 6.178069}, title: "vic", description: "voc",key:"1"} ]}
};
有什么建议吗?