问题描述
我正在尝试让 Google AutoComplete API 使用 getPlace() 函数将结果对象提供给我的 JavaScript 代码。执行此操作后,我尝试访问结果对象,但出现错误:Uncaught TypeError: Cannot read property 'apply' of undefined。
这是我的 JavaScript 控制台:
js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:229 Uncaught TypeError: Cannot read property 'apply' of undefined
at Sf.Oj (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:229)
at Object._.M.trigger (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:225)
at Yf (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:103)
at Yf (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:103)
at E9._.N.set (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:231)
at E9.ni (js?key=AIzaSyAgkis4asbRMBKMWDdTB0uERNORSx0zbrc&libraries=places&callback=initMap:110)
at b (places_impl.js:65)
at places_impl.js:47
at Mu.e [as j] (places_impl.js:28)
at Object.c [as _lphbgh] (common.js:108)
我按照文档在函数调用和回调函数之外声明了自动完成变量,但它给了我这个持久性错误。这是我的 JavaScript 代码:
let placesautocomplete;
function initMap() {
console.log("Google Maps Initialized");
var input = document.getElementById('Referral_Address');
placesautocomplete = new google.maps.places.Autocomplete(input,{
componentRestrictions: { country: ["us","ca"] },fields: ["address_components","geometry"],types: ["address"],});
placesautocomplete.addListener("place_changed",FillInAddress());
}
function FillInAddress() {
const place = placesautocomplete.getPlace();
if (place !== undefined) {
for (const component of place.address_components) {
const componentType = component.types[0];
switch (componentType) {
case "street_number": {
address1 = `${component.long_name} ${address1}`;
console.log(address1);
break;
}
case "route": {
address1 += component.short_name;
break;
}
case "postal_code": {
postcode = `${component.long_name}${postcode}`;
console.log(postcode);
break;
}
case "postal_code_suffix": {
postcode = `${postcode}-${component.long_name}`;
break;
}
case "locality":
document.querySelector("#locality").value = component.long_name;
console.log(component.long_name);
break;
case "administrative_area_level_1": {
document.querySelector("#state").value = component.short_name;
console.log(component.short_name);
break;
}
case "country":
document.querySelector("#country").value = component.long_name;
break;
}
}
}
}
我的目标是在自动完成后填写地址并将其显示给用户,但我每次都会收到错误消息。我首先将它记录到控制台以验证它是否正常工作,然后在它工作后进行更改。
自动完成字段本身工作正常,并相应地填写没有问题,但此错误阻止我的代码从自动完成中获取结果并将其显示给用户。
任何见解表示赞赏。谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)