在传单中创建新形状图层时如何删除最后一个形状图层

How can I remove last shape layer when creating new one in lefalet

根据 this codesandbox 的说法,我正在使用 to 在 React 上生成地图,并且我已经实现了抽屉插件。在这里我想删除我添加到地图的最后一个形状并创建并显示新地图而不是最后一个形状。有什么高效的方法可以做到这一点吗?

将最后一层存储在create事件的变量中:

var lastLayer = null;
map.on(L.Draw.Event.CREATED, function (e) {
      var type = e.layerType,
        layer = e.layer;

      if (type === "marker") {
        const { lat, lng } = layer._latlng;
        console.log(lat, lng);
      }

      if (type === "rectangle") {
        const latlngs = layer._latlngs;
        let thisPpp = "";
        latlngs[0].map((item) => {
          return (thisPpp += `LatLng(${item.lat}, ${item.lng}),`);
        });
      }

      lastLayer = layer; // <---------------
      drawnItems.addLayer(layer);
});

然后你可以删除最后一层:

if(lastLayer){
   lastLayer.remove();
}