diff --git a/src/views/Community/components/StockDetailPanel.js b/src/views/Community/components/StockDetailPanel.js index 97a2fe72..fae14619 100644 --- a/src/views/Community/components/StockDetailPanel.js +++ b/src/views/Community/components/StockDetailPanel.js @@ -63,11 +63,11 @@ function StockDetailPanel({ visible, event, onClose }) { refreshQuotes } = useEventStocks(event?.id, event?.start_time); - // 自选股管理 + // 自选股管理(只在 Drawer 可见时加载) const { watchlistSet, toggleWatchlist - } = useWatchlist(); + } = useWatchlist(visible); // 实时监控管理 const { diff --git a/src/views/Community/components/StockDetailPanel/hooks/useWatchlist.js b/src/views/Community/components/StockDetailPanel/hooks/useWatchlist.js index 81e94848..3dd05e1a 100644 --- a/src/views/Community/components/StockDetailPanel/hooks/useWatchlist.js +++ b/src/views/Community/components/StockDetailPanel/hooks/useWatchlist.js @@ -9,9 +9,10 @@ import { logger } from '../../../../../utils/logger'; * 自选股管理 Hook * 封装自选股的加载、添加、移除逻辑 * + * @param {boolean} shouldLoad - 是否立即加载自选股列表(默认 true) * @returns {Object} 自选股数据和操作方法 */ -export const useWatchlist = () => { +export const useWatchlist = (shouldLoad = true) => { const dispatch = useDispatch(); // 从 Redux 获取自选股列表 @@ -23,10 +24,13 @@ export const useWatchlist = () => { return new Set(watchlistArray); }, [watchlistArray]); - // 初始化时加载自选股列表 + // 初始化时加载自选股列表(只在 shouldLoad 为 true 时) useEffect(() => { - dispatch(loadWatchlist()); - }, [dispatch]); + if (shouldLoad) { + logger.debug('useWatchlist', '条件加载自选股列表', { shouldLoad }); + dispatch(loadWatchlist()); + } + }, [dispatch, shouldLoad]); /** * 检查股票是否在自选股中