Pārlūkot izejas kodu

解决问题:在处理中,反复快速点击切换图像,导致dcm不能理发卡了,不显示了

dengdx 3 nedēļas atpakaļ
vecāks
revīzija
7b9808df56

+ 13 - 0
src/pages/view/components/viewers/stack.image.viewer.tsx

@@ -1950,6 +1950,19 @@ const StackViewer = ({
     };
 
     setup();
+
+    // ✅ 添加清理函数:确保组件卸载时正确清理 viewport
+    return () => {
+      try {
+        const renderingEngine = cornerstone.getRenderingEngine(renderingEngineId);
+        if (renderingEngine) {
+          console.log(`[StackViewer] Cleaning up viewport: ${viewportId}`);
+          renderingEngine.disableElement(viewportId);
+        }
+      } catch (error) {
+        console.warn(`[StackViewer] Error disabling element ${viewportId}:`, error);
+      }
+    };
   }, [elementRef, imageIndex, viewportId, renderingEngineId, imageUrls[0]]);
 
   // 监听容器大小变化,自动保持宽高比