簡體   English   中英

在 react-leaflet 中動態渲染彈出窗口時清空幽靈彈出窗口

[英]Empty ghost Popup when dynamically rendering popup in react-leaflet

我通過一系列嵌套標記元素在react-leaflet中動態呈現標記彈出窗口: DonutMarkerBoundsDriftMarkerDriftMarker PopupDonutMarker (GitHub)中創建並作為道具傳遞給BoundsDriftMarker

export default function DonutMarker(props: DonutMarkerProps) {
  ...
  return (
    <BoundsDriftMarker
      ...
      popup={
        <Popup>
          ...
          test
        </Popup>
      }
      showPopup={props.showPopup}
    />
  );
}

然后從BoundsDriftMarker (GitHub)動態呈現為DriftMarker的子項:

export default function BoundsDriftMarker({position, bounds, icon, duration, popup, showPopup}: BoundsDriftMarkerProps) {
  ...
  return (<DriftMarker
    ...
  >
    ...
    {showPopup && popup}
  </DriftMarker>)
}

這是當前showPopup == true時的樣子,以及 React 瀏覽器插件正確顯示標記下的 Popup 元素:

在此處輸入圖像描述 在此處輸入圖像描述

但是,當我在此之后切換showPopup == false時,即使瀏覽器插件沒有顯示彈出窗口,我也會得到一個空的彈出窗口:

在此處輸入圖像描述 在此處輸入圖像描述

嵌套標記組件是否會導致此問題,還是存在其他問題?

嘗試Seth Lutske回答

react-leaflet:在渲染新標記之前清除標記簇

他將標記包裝在 MarkerClusterGroup 中,並在每次需要刷新 map 中的標記時更改密鑰。 也為我工作

  <MarkerClusterGroup
    key={uuidv4()}  
    spiderfyDistanceMultiplier={1}
    showCoverageOnHover={true}
>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM