我是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语句“我在这里”。
让我知道我错过了什么。
答案 0 :(得分:0)
<div style={mapDisplayStyle} >
WaterMapView
</div>
应该是
<div style={mapDisplayStyle} >
<WaterMapView />
</div>
否则,只需将WaterMapView解释为字符串并显示字符串即可。当您想要使用/渲染组件时,您需要添加&lt; &GT;致id。