@@ -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]]);
// 监听容器大小变化,自动保持宽高比