web-app/src/components/tools/SimilarCaseContent.jsxuseState, useEffect, useCallback, useCaseData, RecommendAPIServicecases - 存储API返回的类案推荐列表laws - 存储API返回的法条推荐列表loading - 控制Loading状态显示error - 存储错误信息web-app/src/components/tools/SimilarCaseContent.jsxweb-app/src/components/tools/SimilarCaseContent.jsxweb-app/src/components/tools/SimilarCaseContent.jsxweb-app/src/components/tools/SimilarCaseContent.jsxweb-app/src/components/tools/SimilarCaseContent.jsx发现时间: 2026-02-04
问题描述: displayLaws.find is not a function 运行时错误
根本原因: displayLaws变量在某些情况下不是数组类型
修复方法:
- 添加 Array.isArray() 类型检查确保 displayCases 和 displayLaws 始终为数组
- 添加长度检查 displayLaws.length > 0 避免在空数组上操作
- 当没有数据时 activeLaw 设置为 null
状态: ✅ 已修复
发现时间: 2026-02-04
问题描述: API返回了类案数据,但页面没有显示
根本原因: API返回的是 data.similarCases,而不是 data.cases
修复方法:
- 修改数据提取路径:casesResult.data?.similarCases || casesResult.data?.cases || []
- 更新字段映射:
- ID: cpwsCaseTextId → id / caseId
- 标题: caseName → title / caseTitle
- 概述: basicCaseInfo → overview / caseOverview
- 添加新字段显示:caseNumber、judgmentDate、court、caseType
状态: ✅ 已修复
发现时间: 2026-02-04
问题描述: API返回了法条数据,但页面没有显示
根本原因: API返回的是 data.provisions,而不是 data.laws
修复方法:
- 修改数据提取路径:lawsResult.data?.provisions || lawsResult.data?.laws || []
- 更新字段映射:
- ID: lawProvisionId → id / lawId
- 标题: provisionIndex → name / lawName
- 添加 lawInfoId 显示
- 添加数组类型检查防止 (law.articles || law.content).map() 报错
- 空内容时显示“暂无详细内容”
状态: ✅ 已修复
发现时间: 2026-02-04
问题描述: Cannot read properties of undefined (reading 'map') 运行时错误
根本原因: 逻辑运算符使用错误,Array.isArray(...) && ...map() 会将布尔值 true 与 .map() 连接
问题代码:javascript {Array.isArray(law.articles || law.content) && (law.articles || law.content).map(...)} // 当 Array.isArray 返回 true 时,表达式变成:true && array.map() // 结果是:true.map() → 错误!
修复方法: 将 && 改为三元运算符 ? :javascript {Array.isArray(law.articles || law.content) ? ( (law.articles || law.content).map(...) ) : null}
状态: ✅ 已修复
发现时间: 2026-02-04
问题描述: 展开类案详情时报错 Cannot read properties of undefined (reading 'map')
根本原因: API返回的类案数据中 plaintiffDemand、mediationScheme、mediationResult 字段可能不存在或不是数组
修复方法: 为所有 .map() 调用添加 Array.isArray() 检查
```javascript
// 修复前
{item.mediationScheme && item.mediationScheme.map(...)}
// 修复后
{item.mediationScheme && Array.isArray(item.mediationScheme) && item.mediationScheme.map(...)}
`` **影响字段**: -plaintiffDemand/demands -mediationScheme -mediationResult`
状态: ✅ 已修复
Array.isArray() 检查数组类型console.log 方便排查数据问题类案推荐接口:json { "code": 200, "data": { "similarCases": [ { "cpwsCaseTextId": "...", "caseName": "...", "caseNumber": "...", "caseType": "...", "basicCaseInfo": "...", "judgmentDate": "...", "court": "..." } ] } }
法条推荐接口:json { "code": 200, "data": { "provisions": [ { "lawProvisionId": "...", "lawInfoId": "...", "provisionIndex": "..." } ] } }