修复实时行情下策略图表闪烁问题

This commit is contained in:
shy3130
2026-07-22 11:42:57 +08:00
parent 2d9fe4a4af
commit a12e49d66d
+16 -6
View File
@@ -353,12 +353,17 @@ export function Screener() {
const dailyKVisible = candleColumnEnabled && dailyKChartVisible
// 批量日k数据 (仅当蜡烛图可见时加载,省请求)
const resultSymbolsKey = useMemo(() => displayRows.map((r: any) => r.symbol).join(','), [displayRows])
const dailyKSymbols = useMemo(
() => [...new Set(displayRows.map((r: any) => r.symbol as string))].sort(),
[displayRows],
)
const resultSymbolsKey = dailyKSymbols.join(',')
const klineBatch = useQuery({
queryKey: QK.screenerKlineBatch(`${resultSymbolsKey}|${candleDays}`),
queryFn: () => api.klineDailyBatch(displayRows.map((r: any) => r.symbol), candleDays),
enabled: dailyKVisible && displayRows.length > 0,
queryFn: () => api.klineDailyBatch(dailyKSymbols, candleDays),
enabled: dailyKVisible && dailyKSymbols.length > 0,
staleTime: 5 * 60_000,
placeholderData: previousData => previousData,
})
const klineData = dailyKVisible ? (klineBatch.data?.data ?? {}) : {}
@@ -395,13 +400,18 @@ export function Screener() {
() => intradayTruncated ? allIntradaySymbols.slice(0, minuteBatchCap) : allIntradaySymbols,
[allIntradaySymbols, intradayTruncated, minuteBatchCap],
)
const intradaySymbolsKey = intradaySymbols.join(',')
const intradayRequestSymbols = useMemo(
() => [...new Set(intradaySymbols)].sort(),
[intradaySymbols],
)
const intradaySymbolsKey = intradayRequestSymbols.join(',')
const minuteBatch = useQuery({
queryKey: QK.minuteBatch(intradaySymbolsKey),
queryFn: () => api.klineMinuteBatch(intradaySymbols),
enabled: intradayVisible && intradaySymbols.length > 0,
queryFn: () => api.klineMinuteBatch(intradayRequestSymbols),
enabled: intradayVisible && intradayRequestSymbols.length > 0,
staleTime: 10_000,
placeholderData: previousData => previousData,
// 仅当开启分时刷新偏好 且 盘中实时行情运行时 才轮询 (省 rpm)
refetchInterval: (intradayRefreshEnabled && realtimeRunning) ? intradayRefreshInterval * 1000 : false,
})