我不明白如何使用react-leaflet正确更新标记。使用此示例:
import React from 'react';
import { render } from 'react-dom';
import { connect } from 'react-redux';
import { Map, Marker, TileLayer } from 'react-leaflet';
const map = props => (
<Map center={[51.505, -0.09]} zoom={13}>
<TileLayer
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
/>
{props.markers.map(m => (
<Marker position={m.position} />
))}
</Map>
);
const mapStateToProps = state => ({
markers: state.markers // array of objects with positions. this can change
});
render(connect(mapStateToProps)(map), document.getElementById('map-container'));
这有效,但是我不知道这是否是正确的方法。因为在这种情况下,当标记更新其位置(或有更多标记)时,Leaflet将删除标记并放置新的标记,而不是更新原始标记的位置。
所以我的问题是那个。我做对了还是不是最有效的方法?
谢谢!