diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts index 4d6a05b87b..f363a71700 100644 --- a/packages/core/src/services/scene/SceneService.ts +++ b/packages/core/src/services/scene/SceneService.ts @@ -405,7 +405,12 @@ export default class Scene extends EventEmitter implements ISceneService { this.emit('destroy'); this.layerService.destroy(); - this.rendererService.destroy(); + // this.rendererService.destroy(); + setTimeout(() => { + // Tip: 把这一部分销毁放到写下一个事件循环中执行,兼容 L7React 中 scene 和 layer 同时销毁的情况 + this.rendererService.destroy(); + }) + this.map.destroy(); this.interactionService.destroy(); diff --git a/stories/React/components/world_ncov_fill.tsx b/stories/React/components/world_ncov_fill.tsx index 502f31d1ec..800ca27d16 100644 --- a/stories/React/components/world_ncov_fill.tsx +++ b/stories/React/components/world_ncov_fill.tsx @@ -100,7 +100,7 @@ export default React.memo(function Map() { return ( <> - {showScene && ( + {showScene && ( { - // setTimeout(() => { - // scene.removeAllLayer() - // }, 3000) + setTimeout(() => { + // scene.removeAllLayer() + // scene.destroy() + + }, 3000) // setTimeout(() => scene.destroy(), 5000) }} >