GoogleMap JSX组件中未定义的变量
Undefined variable in GoogleMap JSX component
在我的应用程序中,我的Google Map JSX组件(由其他人编写)的开头有以下代码片段:
import React from 'react';
import { Button } from 'react-bootstrap';
import {GoogleMapLoader, GoogleMap, Marker, InfoWindow, DirectionsRenderer} from 'react-google-maps';
import {
default as canUseDOM,
} from "can-use-dom";
const DirectionsService = new google.maps.DirectionsService();
当我使用客户端呈现并在客户端上执行此代码时,它运行时不会出现预期行为的错误。然而,当我使用ReactDOM.renderToString()切换到服务器端渲染时,我会遇到以下错误:
var DirectionsService = new google.maps.DirectionsService();
^
ReferenceError: google is not defined
详细查看代码。变量"google"以前在我的代码中没有定义过。
我的问题是:
- 变量"google"在哪里定义
- 为什么客户端渲染执行正常,而服务器端抛出错误
非常感谢你的解释。
变量google
来自客户端异步加载的https://maps.googleapis.com/maps/api/js
。
在服务器上,这个脚本没有加载,事情就中断了。您使用的组件似乎不是完全同构的,因此它只能在客户端工作。
我过去使用过谷歌地图react,强烈推荐并且完全同构。
相关文章:
- Javascript变量未定义,onchange不起作用
- 定义的变量未定义
- 无法弄清楚为什么本机 Promise 变量未定义
- Windows 8 Javascript 疯狂 - 变量未定义
- $rootScope变量未定义
- 变量未定义
- Javascript:TypeError变量未定义
- 变量未定义/超出范围
- javascript变量未定义
- Javascript变量未定义错误
- $scope变量未定义,尽管它是在$watch函数内部设置的
- 类型错误:变量未定义
- AngularJs $http变量未定义
- JQuery:创建扩展返回变量未定义
- d3.js变量未定义,但在Firefox控制台中,它可以工作
- Javascript 中用于上传表单数据的变量未定义
- 节点.js模块级变量未定义
- Node.js req.session 变量未定义
- 错误:AngularJs 变量未定义,当使用 grunt 运行时.(泽泽尔)
- 将字符串拆分为两个变量 - 未定义不是一个函数