У меня есть компонент MapboxMap
React, который инициализирует и отображает карту Mapbox (под кодом map
) и должен визуализировать MapMarker
компонентов внутри него.Доступ к объекту из нескольких компонентов React
Это то, что MapboxMap
выглядит следующим образом:
import React from 'react'
import ReactDOM from 'react-dom'
import MapMarker from './MapMarker'
const MapboxMap = React.createClass({
componentDidMount(argument) {
mapboxgl.accessToken = 'access_token'
// This is what I want to access from inside of <MapMarker />
const map = new mapboxgl.Map({
container: ReactDOM.findDOMNode(this),
style: 'mapbox://styles/mapbox/streets-v8',
center: [-74.50, 40],
zoom: 9
})
},
render() {
const errors = this.props.errors
const photos = this.props.photos
return (
<div className='map'>
{errors.length > 0 && errors.map((error, index) => (
<pre key={index}>Error: {error}</pre>
))}
{errors.length === 0 && photos.map(photo => (
<MapMarker key={photo.id} photo={photo} />
))}
</div>
)
}
})
module.exports = MapboxMap
Это то, что MapMarker
выглядит.
import React from 'react'
import ReactDOM from 'react-dom'
import MapboxMap from './MapboxMap'
const MapMarker = React.createClass({
render() {
const photo = this.props.photo
console.log(photo)
// I want to be able to access `map` inside of this component
return (
<div className='marker'></div>
)
}
})
module.exports = MapMarker
Как структурировать мои два компонента, так что я могу получить доступ map
от обоих компонентов, а конкретно оказывать карту внутри MapboxMap
компонента?
Он отлично работает, спасибо! – gosseti