fix: 修复 CompanyOverview 中 Hooks 顺序错误

问题:在 JSX 内部调用 useColorModeValue,违反 React Hooks 规则
- 第 1377/1388/1786/1797 行直接在 JSX 属性中调用 hook

修复:将 useColorModeValue 调用移到组件顶层
- 添加 blueBg/greenBg/purpleBg/orangeBg 变量
- JSX 中使用变量代替直接调用

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
zdl
2025-12-09 15:35:39 +08:00
parent 15f5c445c5
commit 27fff4e60b

View File

@@ -910,6 +910,11 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
const toast = useToast();
const bgColor = useColorModeValue('gray.50', 'gray.900');
const cardBg = useColorModeValue('white', 'gray.800');
// 高亮区域颜色(修复:不能在 JSX 中调用 hooks
const blueBg = useColorModeValue('blue.50', 'blue.900');
const greenBg = useColorModeValue('green.50', 'green.900');
const purpleBg = useColorModeValue('purple.50', 'purple.900');
const orangeBg = useColorModeValue('orange.50', 'orange.900');
const { isOpen: isAnnouncementOpen, onOpen: onAnnouncementOpen, onClose: onAnnouncementClose } = useDisclosure();
const [selectedAnnouncement, setSelectedAnnouncement] = useState(null);
@@ -1374,7 +1379,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">投资亮点</Text>
<Box p={3} bg={useColorModeValue('blue.50', 'blue.900')} borderRadius="md">
<Box p={3} bg={blueBg} borderRadius="md">
<Text fontSize="sm" whiteSpace="pre-wrap">
{comprehensiveData.qualitative_analysis.core_positioning?.investment_highlights || '暂无数据'}
</Text>
@@ -1385,7 +1390,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">商业模式</Text>
<Box p={3} bg={useColorModeValue('green.50', 'green.900')} borderRadius="md">
<Box p={3} bg={greenBg} borderRadius="md">
<Text fontSize="sm" whiteSpace="pre-wrap">
{comprehensiveData.qualitative_analysis.core_positioning?.business_model_desc || '暂无数据'}
</Text>
@@ -1783,7 +1788,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">战略方向</Text>
<Box p={4} bg={useColorModeValue('purple.50', 'purple.900')} borderRadius="md">
<Box p={4} bg={purpleBg} borderRadius="md">
<Text fontSize="sm">
{comprehensiveData.qualitative_analysis.strategy.strategy_description || '暂无数据'}
</Text>
@@ -1794,7 +1799,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">战略举措</Text>
<Box p={4} bg={useColorModeValue('orange.50', 'orange.900')} borderRadius="md">
<Box p={4} bg={orangeBg} borderRadius="md">
<Text fontSize="sm">
{comprehensiveData.qualitative_analysis.strategy.strategic_initiatives || '暂无数据'}
</Text>