TypeError:无法读取未定义的AGAIN属性“地图”

我收到此错误“ TypeError:无法读取未定义的属性'maps'”,它表明此行有问题

controlPosition={google.maps.ControlPosition.TOP_LEFT}

有我的代码。请帮忙!!!

import React from "react";
const _ = require("lodash");
const { compose,withProps,lifecycle } = require("recompose");
const {
  withScriptjs,withGoogleMap,GoogleMap,Marker,google,} = require("react-google-maps");
const { SearchBox } = require("react-google-maps/lib/components/places/SearchBox");

const SimpleMap = compose(
  withProps({
    googleMapURL: "https://maps.googleapis.com/maps/api/js?key=MY_KEY&v=3.exp&libraries=geometry,drawing,places",loadingElement: <div style={{ height: `200%` }} />,containerElement: <div style={{ height: `500px` }} />,mapelement: <div style={{ height: `100%` }} />,}),lifecycle({
    componentWillMount() {
      const refs = {}

      this.setState({
        bounds: null,center: {
          lat: 34.4208,lng: -119.6982 
        },markers: [],onmapMounted: ref => {
          refs.map = ref;
        },onBoundsChanged: () => {
          this.setState({
            bounds: refs.map.getBounds(),center: refs.map.getcenter(),})
        },onSearchBoxMounted: ref => {
          refs.searchBox = ref;
        },onPlacesChanged: () => {
          const places = refs.searchBox.getPlaces();
          const bounds = new google.maps.LatLngBounds();

          places.forEach(place => {
            if (place.geometry.viewport) {
              bounds.union(place.geometry.viewport)
            } else {
              bounds.extend(place.geometry.location)
            }
          });
          const nextMarkers = places.map(place => ({
            position: place.geometry.location,}));
          const nextCenter = _.get(nextMarkers,'0.position',this.state.center);

          this.setState({
            center: nextCenter,markers: nextMarkers,});
          // refs.map.fitBounds(bounds);
        },})
    },withScriptjs,withGoogleMap
)(props =>
  <GoogleMap
    ref={props.onmapMounted}
    defaultzoom={15}
    center={props.center}
    onBoundsChanged={props.onBoundsChanged}
  >
    <SearchBox
      ref={props.onSearchBoxMounted}
      bounds={props.bounds}
      controlPosition={google.maps.ControlPosition.TOP_LEFT}
      onPlacesChanged={props.onPlacesChanged}
    >
      <input
        type="text"
        placeholder="Customized your placeholder"
        style={{
          boxSizing: `border-box`,border: `1px solid transparent`,width: `240px`,height: `32px`,marginTop: `27px`,padding: `0 12px`,borderRadius: `3px`,boxShadow: `0 2px 6px rgba(0,0.3)`,fontSize: `14px`,outline: `none`,textOverflow: `ellipses`,}}
      />
    </SearchBox>
    {props.markers.map((marker,index) =>
      <Marker key={index} position={marker.position} />
    )}
  </GoogleMap>
);
export default SimpleMap;
xx328397830 回答:TypeError:无法读取未定义的AGAIN属性“地图”

您确定react-google-maps包会导出google对象吗?我只是快速浏览了他们的仓库,他们似乎并没有导出google成员(请看Image2)。如果他们不导出google,则问题是以下导入。

const {
  withScriptjs,withGoogleMap,GoogleMap,Marker,google,// this is invalid - there is no 'google' available
} = require("react-google-maps");
,

只需添加window.google.maps这样就可以了。

controlPosition = { window.google.maps.ControlPosition.TOP_LEFT }
本文链接:https://www.f2er.com/3091483.html

大家都在问