在 React-Leaflet 中映射状态
Mapping state In React-Leaflet
我无法尝试在我的 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"
错误可能是由您代码的其他部分产生的,因为在您包含的内容中没有任何对象的纬度 属性。
因此,为了从存储在状态中的对象数组中呈现标记,您应该在使用 map 循环时解构标记数组中的对象属性,以便直接使用它们:
{this.state.markers.map(({position, _id, content}) =>
<Marker
key={_id}
position={position}
icon={customMarker}>
<Popup>
{content}
</Popup>
</Marker>)
}
callback-function 有 3 个参数,第一个参数是数组中的当前条目。必须通过它访问必要的属性。
{this.state.markers.map(marker =>
<Marker key={marker._id} position={marker.position}>
<Popup>
<span> <br/> {marker.content}</span>
</Popup>
</Marker>
)}
我无法尝试在我的 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"
错误可能是由您代码的其他部分产生的,因为在您包含的内容中没有任何对象的纬度 属性。
因此,为了从存储在状态中的对象数组中呈现标记,您应该在使用 map 循环时解构标记数组中的对象属性,以便直接使用它们:
{this.state.markers.map(({position, _id, content}) =>
<Marker
key={_id}
position={position}
icon={customMarker}>
<Popup>
{content}
</Popup>
</Marker>)
}
callback-function 有 3 个参数,第一个参数是数组中的当前条目。必须通过它访问必要的属性。
{this.state.markers.map(marker =>
<Marker key={marker._id} position={marker.position}>
<Popup>
<span> <br/> {marker.content}</span>
</Popup>
</Marker>
)}