TypeError:尝试使用google-maps-react时无法读取未定义的属性'array'

时间:2017-10-08 10:03:10

标签: reactjs google-maps-react

我是ReactJS的新手,但熟悉React Native。我想要显示一个基本的地图组件。

我的地图组件是

WaterMapView.js

import React, { Component } from 'react';
import { Map, InfoWindow, Marker, GoogleApiWrapper } from 'google-maps-react';

export class WaterMapView extends Component {
    render () {
        console.log(' I am here ');
        return (
            <Map
                google={this.props.google}
                style={styles.mapStyle}
                initialCenter={{
                    lat: 40.854885,
                    lng: -88.081807
                        }}
                zoom={15}
            />
        )
    }
}

const styles = {
    mapStyle: {
        height: '100%',
        width: '100%'
    }
}
export default GoogleApiWrapper({
  apiKey: 'AIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
})(WaterMapView)

此组件嵌入MainDashboard.js中,如下所示:

import React, { Component } from 'react';
import windowSize from 'react-window-size';
import WaterMapView from './WaterMapView';

class MainDashboard extends Component {
  render () {
  const height = this.props.windowHeight;
  const {
      containerStyle,
      headerStyle,
      navigationStyle,
      mainPageStyle,
      eventPageStyle,
      mapPageStyle,
      mapDisplayStyle,
      mapPropertiesStyle
    } = styles; 

  return (
    <div style={{ ...containerStyle, height }} >
      <div style={headerStyle} >
      </div>
      <div style={navigationStyle} >
      </div>
      <div style={mainPageStyle} >
        <div style={eventPageStyle} >
        </div>
        <div style={mapPageStyle} >
            <div style={mapDisplayStyle} >
                <WaterMapView />
            </div>
            <div style={mapPropertiesStyle} >
            </div>

        </div>
      </div>
    </div>
    );
  };
};

我的App.js组件是:

import React from 'react';
import MainDashboard from './MainDashboard'; 

const App = () => {
        return (
            <div>
                <MainDashboard />
            </div>
        )
};

export default App

而index.js是:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './Components/App';
import registerServiceWorker from './registerServiceWorker';


ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

我使用的是React版本16.0.0和google-maps-react版本1.1.0

我收到错误并附带代码转储。错误是:

TypeError:无法读取未定义

的属性'array'

我没有在这篇文章中包含转储。如果需要,我可以添加。

问题似乎非常基本,因为我甚至没有在WaterMapView.js组件中看到console.log语句“我在这里”。

让我知道我错过了什么。

1 个答案:

答案 0 :(得分:0)

<div style={mapDisplayStyle} >
                WaterMapView
</div>

应该是

<div style={mapDisplayStyle} >
  <WaterMapView />
</div>

否则,只需将WaterMapView解释为字符串并显示字符串即可。当您想要使用/渲染组件时,您需要添加&lt; &GT;致id。