Tôi đang cố gắng thêm một thành phần bản đồ React vào dự án của mình nhưng gặp lỗi. Tôi đang sử dụng bài đăng trên blog của Fullstack React làm tài liệu tham khảo. Tôi đã theo dõi nơi lỗi được ném trong dòng 83 của google_map.js:
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
Đây là thành phần bản đồ của tôi cho đến nay. Trang chỉ tải tốt (không có bản đồ) khi tôi nhận xét các dòng 58-60, ba dòng cuối cùng. chỉnh sửa: Tôi đã thực hiện các thay đổi mà @Dmitriy Nevzorov đề xuất và nó vẫn gây ra lỗi tương tự.
import React from 'react'
import GoogleApiComponent from 'google-map-react'
export class LocationsContainer extends React.Component {
constructor() {
super()
}
render() {
const style = {
width: '100vw',
height: '100vh'
}
return (
<div style={style}>
<Map google={this.props.google} />
</div>
)
}
}
export class Map extends React.Component {
componentDidUpdate(prevProps, prevState){
if (prevProps.google !== this.props.google){
this.loadMap();
}
}
componentDidMount(){
this.loadMap();
}
loadMap(){
if (this.props && this.props.google){
const {google} = this.props;
const maps = google.maps;
const mapRef = this.refs.map;
const node = ReactDOM.findDOMNode(mapRef);
let zoom = 14;
let lat = 37.774929
let lng = 122.419416
const center = new maps.LatLng(lat, lng);
const mapConfig = Object.assign({}, {
center: center,
zoom: zoom
})
this.map = new maps.Map(node, mapConfig)
}
}
render() {
return (
<div ref='map'>
Loading map...
</div>
)
}
}
export default GoogleApiComponent({
apiKey: MY_API_KEY
})(LocationsContainer)
Và đây là nơi thành phần bản đồ này được định tuyến trong main.js:
import {render} from 'react-dom';
import React from 'react';
import Artists from './components/Artists'
import { Router, Route, Link, browserHistory } from 'react-router'
import Home from './components/HomePage'
import Gallery from './components/ArtGallery'
import ArtistPage from './components/ArtistPage'
import FavsPage from './components/FavsPage'
import LocationsContainer from './components/Locations'
//Create the route configuration
render((
<Router history={browserHistory}>
<Route path="/" component={Home} />
<Route path="locations" component={LocationsContainer} />
<Route path="artists" component={Artists} />
<Route path="gallery" component={Gallery} />
<Route path="favorites" component={FavsPage} />
<Route path=":artistName" component={ArtistPage} />
</Router>
), document.getElementById('app'))
(LocationContainer)
?
export default new GoogleApiComponent({ bootstrapURLKeys: MY_API_KEY })
export default
s, và nó sẽnew GoogleAPIComponent()
khôngGoogleAPIComponent()
?