Как получить данные с помощью axios для placeid в картах Google и React? - PullRequest
0 голосов
/ 10 июня 2018

У меня есть массив в состоянии restaurantsFetchedFromGoogle, в котором в настоящее время хранится 20 мест, ранее выбранных с карт Google.Они хранятся в массиве следующим образом:

0:"ChIJTb1qU315MhMRiL7pihnMWfg"
1:"ChIJGZ0jXCCNMRMRrH8VHRAgEYE"
2:"ChIJQ5jaX8eMMRMRnRoZxl6X95w"
...
19:"ChIJQ5jaX8errrMRnRoZxl6X95w"

Теперь я пытаюсь перебрать массив с запросом получения Axios, например:

componentDidMount(){
    navigator.geolocation.getCurrentPosition(position=>{
    this.setState({geoLat:position.coords.latitude,geoLng:position.coords.longitude});
    axios.get(`https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${position.coords.latitude},${position.coords.longitude}&radius=50000&keyword=recensioni&type=ristorante&keyword=cena&key=MYAPIKEY`)
         .then(response => this.setState({restaurantsFetchedFromGoogle:response.data.results}));
    });
    this.state.restaurantsFetchedFromGoogle.map(item=>{
      axios.get(`https://maps.googleapis.com/maps/api/place/details/json?placeid=${item.place_id}&key=AIzaSyCZ7rgMN34kWkGvr8Pzkf_8nkT7W6gowBA`)
           .then(response => this.setState({placeId:response.data}))
           .catch(err =>{
           console.log(err);
           console.log(err.response.data.error);
    });
  });
    axios.get('/restaurants.json')
         .then(response =>this.setState({restaurants:response.data}));
  }

Идет первый и третий запрос Axiosчерез, но не второй.Что я делаю не так?

1 Ответ

0 голосов
/ 10 июня 2018

Добавьте обработчик ошибок для регистрации сообщения об ошибке!Это должно сказать вам, почему запрос не выполняется.

this.state.restaurantsFetchedFromGoogle.map(item=>{
axios.get('https://maps.googleapis.com/maps/api/place/details/json?placeid='+ 
item + '&key=MYAPIKEY')
   .then(response => this.setState({placeId:response.data}))
   .catch(err => {
     console.log(err)                     //Axios entire error message
     console.log(err.response.data.error) //Google API error message 
   })
});

Даже без .catch - вы можете использовать инструменты разработчика Chrome, чтобы увидеть ошибку на вкладке Сеть в инструментах разработчика.

Если после этого у вас все еще есть проблемы - напишите конкретное сообщение об ошибке, и я посмотрю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...