You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Places Autocomplete点击预测项时getPlace()首次返回undefined求助

Google Places Autocomplete 异常排查方案

我在点击Google Places Autocomplete下拉预测项时出现报错:Uncaught TypeError: Cannot read properties of undefined (reading 'geometry'),经排查首次触发onPlaceChanged()时getPlace()返回undefined,第二次点击同一项则正常返回地址。以下是针对性排查线索:

  • 确认API初始化时机:必须在Google Maps Places脚本完全加载完成后再初始化Autocomplete实例。比如将初始化代码放在官方推荐的initMap函数内,或者通过google.maps.event.addDomListener(window, 'load', function() { ... })确保脚本加载完成后再执行初始化逻辑。
  • 检查事件监听器重复绑定:排查代码中是否多次调用autocomplete.addListener('place_changed', onPlaceChanged),重复绑定可能导致第一次触发时实例状态异常。
  • 验证API密钥状态:登录Google Cloud Console,确认已启用Places API,且当前配额未耗尽。首次请求可能因权限或配额问题失败,第二次可能复用缓存结果(部分场景下存在)。同时查看API的错误日志,是否有相关权限或请求报错记录。
  • 检查Autocomplete配置选项:如果设置了types、componentRestrictions等过滤选项,确认这些配置是否导致首次返回的预测项不包含完整地点数据。比如部分类型的预测项需要额外请求,首次触发时数据未完成加载。
  • 调试函数执行状态:在onPlaceChanged函数开头添加console.log(autocomplete.getPlace()),实时观察首次触发时的返回值;同时检查是否有其他异步操作(如输入框DOM动态修改)干扰了Autocomplete实例的状态。
  • 排除浏览器兼容性问题:切换Chrome、Firefox等主流浏览器测试,确认是否是特定浏览器的事件触发机制差异导致的问题。
  • 排查输入框事件冲突:检查输入框是否绑定了click、focus等自定义事件,这些事件可能与Autocomplete内置事件的触发顺序冲突,导致首次点击时实例无法正确获取地点数据。

内容的提问来源于stack exchange,提问作者R00M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:32:38