/** * 盈利预测报表视图 - 黑金主题 * 优化:使用 useForecastData Hook、错误处理、memo 包装 */ import React, { memo } from 'react'; import { Box, SimpleGrid, Center, VStack, Text, Button } from '@chakra-ui/react'; import { useForecastData } from './hooks'; import { IncomeProfitGrowthChart, EpsChart, PePegChart, DetailTable, ForecastSkeleton, } from './components'; import type { ForecastReportProps } from './types'; const ForecastReport: React.FC = ({ stockCode }) => { const { data, isLoading, error, refetch } = useForecastData(stockCode); // 加载状态 - 显示骨架屏 if (isLoading && !data) { return ; } // 错误状态 if (error && !data) { return (
{error}
); } // 无数据 if (!data) return null; return ( {/* 图表区域 - 3列布局 */} {/* 详细数据表格 */} ); }; export default memo(ForecastReport);