我正在使用使用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;
}