React Google Maps API(ReferenceError:google 未定义)
2021-10-22
15335
我正在使用
react-google-maps/api
节点模块。我需要将
zoomControlOptions
的值设置为
TOP_LEFT
,但最终收到此错误
Uncaught ReferenceError: google is not defined
。这是存储库的
链接
。
我在这里收到错误
const options = {
zoomControl: true,
mapTypeControl: false,
minZoom: 2,
streetViewControl: false,
zoomControlOptions: {
position: google.maps.ControlPosition.TOP_LEFT, // google is undefined here
},
};
请帮助我 :)
3个回答
发生这种情况的原因是您在 Google 地图加载之前对其进行了渲染。
不要使用
LoadScript
,而要使用
useJsApiLoader
。
import {
GoogleMap,
MarkerF,
useJsApiLoader,
} from "@react-google-maps/api";
function RenderMap() {
const { isLoaded } = useJsApiLoader({ googleMapsApiKey });
if (!isLoaded) {
return null;
}
// google is guaranteed to be defined now
return <GoogleMap>...</GoogleMap>
}
useJsApiLoader
具有以下类型签名:
declare function useJsApiLoader({ id, version, nonce, googleMapsApiKey, language, region, libraries, preventGoogleFontsLoading, mapIds, authReferrerPolicy, }: UseLoadScriptOptions): {
isLoaded: boolean;
loadError: Error | undefined;
};
Hammad Ali
2023-03-06
AhmCho
2021-10-22
尝试在组件内部定义“选项”并添加“窗口”,如
position: window.google.maps.ControlPosition.TOP_LEFT
此外,您也可以只放一个数字
BOTTOM: 11
BOTTOM_CENTER: 11
BOTTOM_LEFT: 10
BOTTOM_RIGHT: 12
CENTER: 13
LEFT: 5
LEFT_BOTTOM: 6
LEFT_CENTER: 4
LEFT_TOP: 5
RIGHT: 7
RIGHT_BOTTOM: 9
RIGHT_CENTER: 8
RIGHT_TOP: 7
TOP: 2
TOP_CENTER: 2
TOP_LEFT: 1
TOP_RIGHT: 3
Rodder
2021-12-16