Я застрял, пытаясь отобразить состояние в моем проекте React-Leaflet. Вот мое состояние и то, что я делаю, чтобы получить маркер на моей карте.
this.state = {
markers: [
{
_id: 'SomeId',
position:[51.509,-0.03],
content: 'Something'}
}
]
}
{this.state.markers.map((position, _id, content) =>
<Marker
key = {_id}
position = {position}>
<Popup>
<span>{content}</span>
</Popup>
</Marker>
)}
я получил
"Uncaught TypeError: Cannot read property 'lat' of null"





Вероятно, ошибка генерируется другой частью вашего кода, потому что в том, что вы включили, нет свойства lat какого-либо объекта.
Поэтому, чтобы отобразить маркер из массива объектов, хранящихся в состоянии, вы должны деструктурировать свойства объекта внутри массива маркеров во время цикла с картой, чтобы использовать их напрямую:
{this.state.markers.map(({position, _id, content}) =>
<Marker
key = {_id}
position = {position}
icon = {customMarker}>
<Popup>
{content}
</Popup>
</Marker>)
}
Функция обратного вызова принимает 3 аргумента, и первый аргумент — это текущая запись в массиве. Необходимые свойства должны быть доступны через него.
{this.state.markers.map(marker =>
<Marker key = {marker._id} position = {marker.position}>
<Popup>
<span> <br/> {marker.content}</span>
</Popup>
</Marker>
)}