Javascript google在react中未定义?
当我调用window和console log时,我会得到一个google道具,如您所见:Javascript google在react中未定义?,javascript,reactjs,google-maps,Javascript,Reactjs,Google Maps,当我调用window和console log时,我会得到一个google道具,如您所见: 然而,当我试图调用window.google时,我没有定义。我在这里遗漏了什么吗?因为这看起来像谷歌地图API,这可能是一个加载顺序问题 确保拉入谷歌地图标签的位于运行代码的标签之前 如果这不是问题所在,您可能需要用某种ready()函数包装React代码,以强制它等待Google代码准备就绪。稍后回答此问题,但您可以简单地将此常量添加到React组件的顶部,如下导入语句: const google =
然而,当我试图调用
window.google
时,我没有定义。我在这里遗漏了什么吗?因为这看起来像谷歌地图API,这可能是一个加载顺序问题
确保拉入谷歌地图标签的
位于运行代码的标签之前
如果这不是问题所在,您可能需要用某种
ready()
函数包装React代码,以强制它等待Google代码准备就绪。稍后回答此问题,但您可以简单地将此常量添加到React组件的顶部,如下导入语句:
const google = window.google = window.google ? window.google : {}
它a)创建一个变量,然后b)使用三元运算符确定window.google是否已加载,c)如果未加载,则将google指定为空对象。
H/t至@blackmamba。查看其他内容。嘿,我在尝试实例化一个新窗口时遇到了类似问题。google.maps.Map发现这个解决方案对我很有帮助
标记时,给它一个标识符,以便稍后在组件中获取它load
事件侦听器,并等待它准备好后再执行更多代码if(window.google)
您是否确保在引用Google API库之后而不是之前执行该调用?请尝试
this.Google
componentDidMount() {
const googleScript = document.getElementById('google-map-script')
if (window.google) {
// All is good! Carry on
}
googleScript.addEventListener('load', () => {
// Patiently waiting to do the thing
})
}