Просмотр исходного кода

fix: 修复体型选择器在bodysize为空时导致的崩溃问题

- 在 Select 组件的 value 属性上添加条件检查
- 当 bodysize 为空时返回 undefined,避免 formatMessage 接收无效 id
- 确保进入检查页面时不会因为体型数据为空而崩溃

改动文件:
- src/pages/exam/ContentAreaLarge.tsx
- CHANGELOG.md
- package.json (版本更新: 1.12.3 -> 1.12.4)
dengdx 3 недель назад
Родитель
Сommit
c09d353b38
3 измененных файлов с 28 добавлено и 2 удалено
  1. 26 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 1 1
      src/pages/exam/ContentAreaLarge.tsx

+ 26 - 0
CHANGELOG.md

@@ -2,6 +2,32 @@
 
 本项目的所有重要变更都将记录在此文件中。
 
+## [1.12.4] - 2025-12-18 13:06
+
+### 修复 (Fixed)
+- **体型选择器崩溃问题** ([src/pages/exam/ContentAreaLarge.tsx](src/pages/exam/ContentAreaLarge.tsx))
+  - 修复进入检查页面时,bodysize 为空导致的崩溃问题
+  - 在 Select 组件的 value 属性上添加条件检查:`!!bodysize ? intl.formatMessage({ id: bodysize }) : undefined`
+  - 避免在 bodysize 为 null/undefined 时调用 formatMessage 导致错误
+  - 确保体型选择器在初始状态下正确显示占位符
+
+**核心改进:**
+- 防御性编程:添加空值检查,提升代码健壮性
+- 用户体验:进入检查页面不再崩溃,正常显示体型选择器
+- 错误处理:优雅处理 bodysize 未初始化的场景
+
+**技术实现:**
+- 使用 `!!bodysize` 进行真值检查
+- 空值时返回 undefined,让 Select 组件显示 placeholder
+- 保持与 Ant Design Select 组件的正确交互
+
+**改动文件:**
+- src/pages/exam/ContentAreaLarge.tsx
+- CHANGELOG.md
+- package.json (版本更新: 1.12.3 -> 1.12.4)
+
+---
+
 ## [1.12.3] - 2025-12-18 10:07
 
 ### 修复 (Fixed)

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "zsis",
-  "version": "1.12.3",
+  "version": "1.12.4",
   "private": true,
   "description": "医学成像系统",
   "main": "main.js",

+ 1 - 1
src/pages/exam/ContentAreaLarge.tsx

@@ -277,7 +277,7 @@ const ContentAreaLarge = () => {
             <Select
               placeholder={<FormattedMessage id="exam.bodysize.placeholder" />}
               style={{ width: '100%', marginBottom: 8 }}
-              value={intl.formatMessage({ id: bodysize })}
+              value={!!bodysize ? intl.formatMessage({ id: bodysize }) : undefined}
               onChange={handleBodysizeChange}
             >
               {Object.entries(patientSizes).map(