From 37d98203a3868e947d35c049353d1c64e2b6205b Mon Sep 17 00:00:00 2001
From: zdl <3489966805@qq.com>
Date: Fri, 31 Oct 2025 15:05:15 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=A6=82=E5=BF=B5?=
=?UTF-8?q?=E4=B8=AD=E5=BF=83=E6=97=B6=E9=97=B4=E8=BD=B4=E5=BC=B9=E7=AA=97?=
=?UTF-8?q?=E5=85=B3=E9=97=AD=E8=A1=8C=E4=B8=BA=EF=BC=8C=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6=E6=B8=B2=E6=9F=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
问题描述:
- 点击关闭按钮后,弹窗未完全关闭
- 可能存在 DOM 残留或状态问题
优化方案:
- 使用条件渲染替代 isOpen 属性控制
- 当状态为 false 时,Modal 组件完全从 DOM 中卸载
- 确保每次打开都是全新的状态
修改内容:
1. 主时间轴 Modal:添加 {isOpen && ...} 条件渲染
2. 研报详情 Modal:添加 {isReportModalOpen && ...} 条件渲染
3. 新闻详情 Modal:添加 {isNewsModalOpen && ...} 条件渲染
优化效果:
- 弹窗关闭后组件完全卸载,避免残留
- 减少不必要的 DOM 节点,提升性能
- 每次打开都是全新的组件实例
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude
---
src/views/Concept/ConceptTimelineModal.js | 42 +++++++++++++----------
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/src/views/Concept/ConceptTimelineModal.js b/src/views/Concept/ConceptTimelineModal.js
index 862c6ce6..51c35ec6 100644
--- a/src/views/Concept/ConceptTimelineModal.js
+++ b/src/views/Concept/ConceptTimelineModal.js
@@ -406,12 +406,13 @@ const ConceptTimelineModal = ({
return (
<>
-
+ {isOpen && (
+
+ )}
{/* 研报全文Modal */}
- setIsReportModalOpen(false)}
- size="4xl"
- scrollBehavior="inside"
- >
+ {isReportModalOpen && (
+ setIsReportModalOpen(false)}
+ size="4xl"
+ scrollBehavior="inside"
+ >
@@ -919,14 +922,16 @@ const ConceptTimelineModal = ({
+ )}
{/* 新闻全文Modal */}
- setIsNewsModalOpen(false)}
- size="4xl"
- scrollBehavior="inside"
- >
+ {isNewsModalOpen && (
+ setIsNewsModalOpen(false)}
+ size="4xl"
+ scrollBehavior="inside"
+ >
@@ -989,6 +994,7 @@ const ConceptTimelineModal = ({
+ )}
>
);
};