3.2 KiB
3.2 KiB
2026-06-28
- SQL 模板字面量 Metro 解析错误修复:Expo/Babel 在
.tsx文件中会将模板字面量中的id关键字误解析为 JSX 属性,报Missing semicolon。根因是@babel/plugin-transform-typescript的 TSX 模式 bug。最终方案:将所有 SQL 模板字面量改为字符串拼接(+连接),避免了模板字面量 → TSX 解析路径。涉及文件:app-rn/src/app/finance/(tabs)/analysis/index.tsx— 3 处 SQLapp-rn/src/app/finance/(tabs)/home/index.tsx— 1 处 SQLapp-rn/src/app/finance/detail/[id].tsx— 1 处 SQL
- 注意:仅提取为变量不够(
const sql = \...`` 仍然触发),必须完全避免模板字面量 - 中文乱码修复:修复了以下文件中因编码转换导致的大量中文乱码(UTF-8 被误当 GBK/CP1252 解析导致的 mojibake):
app-rn/src/app/finance/(tabs)/analysis/index.tsx— 约 50 处乱码修复(注释、UI 标签、¥ 符号)app-rn/src/app/finance/(tabs)/home/index.tsx— 约 20 处乱码修复(toast 消息、UI 标签、¥ 符号)app-rn/src/app/finance/category/index.tsx— 约 12 处乱码修复(toast 消息、表单标签)app-rn/src/app/finance/add/index.tsx— 约 15 处乱码修复(UI 标签、toast 消息、¥ 符号)
- 修复 DateTime/DateTimeRange 乱码和日历外边距:修正了中文注释和按钮标签乱码,日历容器添加
px-4 - 移除 BottomSheet 默认内边距:gorhom 的
BottomSheetView自带padding: 16,在AppBottomSheetContent中通过style={[{ padding: 0 }]}消除。补偿了family/settings.tsx中一个缺少px-4的 BottomSheet 使用处 - BottomSheet 内 input 键盘避让修复:
family/user.tsx中 sheet 内的 heroui<Input>(底层原生 TextInput)被键盘遮挡。根因有三层:BottomSheet.tsx封装时keyboardBehavior="extend"是错的——gorhom 源码(BottomSheet.js L585)显示extend只是把 sheet 拉到最高 snap point,根本不上移。应改为 gorhom 默认值"interactive"(L602-608:highestDetentPosition - keyboardHeightInContainer,sheet 上移到键盘上方)。android_keyboardInputMode="adjustResize"在 Android 上会导致interactive模式被跳过(L605:!(Platform.OS === 'android' && android_keyboardInputMode === 'adjustResize'))。应改为 gorhom 默认值"adjustPan"。- heroui
<Input>底层是原生TextInput,未注册到 sheet 内部 context,sheet 感知不到 focus。
- 最终方案(最优):
BottomSheet.tsx改keyboardBehavior="interactive"+android_keyboardInputMode="adjustPan"。AppBottomSheetInput封装改用 heroui 原生Input+useBottomSheetAwareHandlers(heroui-native 提供),hook 内部调用 gorhomuseBottomSheetInternal(true)把 focus/blur 注册到animatedKeyboardState。这样保留 heroui Input 全部样式和 API,无需用BottomSheetTextInput。 - 全项目 sheet 内
<Input>统一替换为<BottomSheet.Input>:family/user.tsx(2处)、family/settings.tsx(2处)、finance/add/index.tsx(2处)、finance/category/index.tsx(1处)、finance/(tabs)/home/index.tsx(1处)、finance/(tabs)/analysis/index.tsx(1处)。