没有得到API调用函数的结果

时间:2016-12-15 02:05:09

标签: javascript reactjs ecmascript-6

我正在使用使用Google Places API的React应用。我无法从调用Google API的函数中获取结果 - 我认为因为API调用是异步的。

我创建了一个包含所有Google商家信息功能的文件,如下所示:

const googlePlacesAutocomplete = new google.maps.places.AutocompleteService();

const callbackGetAddressQueryPredictions = (predictions, status) => {

    if(status !== google.maps.places.PlacesServiceStatus.OK) return null;
    return predictions;
}

export const googlePlacesAutoComplete = (keyword) => {

    googlePlacesAutocomplete.getQueryPredictions({input: keyword}, callbackGetAddressQueryPredictions);
}

在我的React组件中,我像这样导入googlePlacesAutoComplete()函数:

import {googlePlacesAutoComplete} from '../googlePlaces';

我正在使用我的React组件中的以下调用来测试它,但没有得到任何东西。

onChangeAddress(event) {  
     const suggestions = googlePlacesAutoComplete("123 Main Street");
}

由于我有限的JS / ES2015知识,我确定我犯了一个基本错误。我哪里错了?

更新: 我尝试从googlePlacesAutoComplete()函数返回结果 - 尽管它是一个丑陋的kludge,只是想看看这是否是问题。这就是我试过的:

const googlePlacesAutocomplete = new google.maps.places.AutocompleteService();
let suggestions = [];

const callbackGetAddressQueryPredictions = (predictions, status) => {

  if(status !== google.maps.places.PlacesServiceStatus.OK) {
     suggestions = predictions;
  }
}

export const googlePlacesAutoComplete = (keyword) => {

   googlePlacesAutocomplete.getQueryPredictions({input: keyword}, callbackGetAddressQueryPredictions);
   return suggestions;
}

0 个答案:

没有答案