Dynamic 对传单问题做出反应以创建<;标记>&书信电报;弹出窗口>;实例动态

Dynamic 对传单问题做出反应以创建<;标记>&书信电报;弹出窗口>;实例动态,dynamic,leaflet,popup,marker,react-leaflet,Dynamic,Leaflet,Popup,Marker,React Leaflet,我想动态创建一个react传单对象。正常传单对象工作,但反应传单不工作。 以下代码示例: 左键单击显示传单对象的所需行为,右键单击“反应传单”的问题 问题代码: var-lat=e.latlng.lat; var-lon=e.latlng.lng; //创建弹出内容 //使用反应传单 var newMarker= {/*使用编辑弹出窗口*/} 您的可设置样式的内容在这里。 ; //问题地址(地图) newMarker.addTo(map); newMarker是一个react元素。不能对其调用

我想动态创建一个react传单对象。正常传单对象工作,但反应传单不工作。 以下代码示例:

左键单击显示传单对象的所需行为,右键单击“反应传单”的问题

问题代码:

var-lat=e.latlng.lat;
var-lon=e.latlng.lng;
//创建弹出内容
//使用反应传单
var newMarker=
{/*使用编辑弹出窗口*/}
您的可设置样式的内容在这里。
;
//问题地址(地图)
newMarker.addTo(map);

newMarker
是一个react元素。不能对其调用传单方法
addTo
,因为它不是传单
L.Marker
实例

如果希望能够通过react管理标记,则需要保留一个状态变量,它是一个坐标数组。单击“贴图”,可以将坐标添加到该阵列,然后从该阵列渲染一系列
元素

在事件处理程序中,只需捕获单击的位置并将其传递给回调
setMarkers

函数MyRightClickEventHandler({setMarkers}){
useMapEvents({
上下文菜单:(e)=>{
设置标记(如板条);
}
});
返回null;
}
setMarkers
是对主MapView组件上的
setState
的回调,它将
latlng
添加到状态变量,该变量包含一个
latlng
数组:

//在您的MapContainer中:
这个.setState({
MarkerArray:[…this.state.MarkerArray,markers]
})
}
/>
然后映射到该状态变量中的latlngs(如果有):

{this.state.markerary&&
this.state.markerary.map((latlng)=>(
感谢您使用我的可编辑弹出插件!
))}
请注意,如果要在从数组动态呈现的可编辑弹出窗口上使用
可编辑
可移动
打开
道具,请务必阅读我的部分-如果不小心,它可能会变得毛茸茸的。如果遇到问题,请在评论中自由提问