ReactJS TypeError:_this3.state.Objects.map不是函数

时间:2017-11-30 05:03:40

标签: javascript jquery reactjs google-maps typeerror

我正在获取一些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>
  ))


}

}

非常感谢!

1 个答案:

答案 0 :(得分:1)

Objects.map不是函数,因为Objects不是数组。

componentWillMount()函数中:res请求返回的axios.get()变量为object,其中包含headers和{{1}等额外信息}。

您实际关注的status textdata之内。请参阅下文,了解如何提取所述数据的示例。

object

有关详细信息,请参阅Axios docs