我正在获取一些api数据到谷歌地图标记...我在ReactJS很新手,过去2天我一遍又一遍地得到同样的错误,我真的不知道如何解决它。有人可以帮我吗? (另外,如果我做错了,我的第一个问题就是抱歉)
TypeError:_this3.state.Objects.map不是函数
class maps extends Component{
constructor(props){
super(props)
this.state = { Objects: [] }
}
componentWillMount(){
axios.get('https://api.ost.pt/traffic_events/?key=VMSBvXtmOixXVuaHqeyAxDEhQkbnJpXZBYjDufEu')
.then( res => {
console.log(res);
this.setState({Objects: res})
})
.catch(error => {
console.log('Error fetching and parsing data', error);
});
}
render(){
const MyMapComponent = withScriptjs(withGoogleMap((props) =>
<GoogleMap
defaultZoom={2}
defaultCenter={{ lat: 40.6333333, lng: -8.65 }}
>
{
this.state.Objects.map(function(Objects, i) {
return(
<Marker position={{ lat: Objects.data.Objects.location.coodinates[i], lng: Objects.data.Objects.location.coodinates[i] }} />
)
})
}
{props.isMarkerShown && <Marker position={{ lat: 40.6333333, lng: -8.65 }} />}
{props.isMarkerShown && <Marker position={{ lat: 40.627467, lng: -8.64912 }} />}
</GoogleMap>
))
}
}
非常感谢!
答案 0 :(得分:1)
Objects.map
不是函数,因为Objects
不是数组。
在componentWillMount()
函数中:res
请求返回的axios.get()
变量为object
,其中包含headers
和{{1}等额外信息}。
您实际关注的status text
在data
之内。请参阅下文,了解如何提取所述数据的示例。
object
有关详细信息,请参阅Axios docs。