Google Maps AutoComplete API - 未捕获的类型错误:无法读取未定义的属性“应用”

问题描述

我正在尝试让 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 (将#修改为@)