fix(home): Scrollbar+SingleChildScrollView primary:true (no ScrollPosition runtime error); docs: runtime issues in TODO §9
This commit is contained in:
23
TODO.md
23
TODO.md
@@ -225,3 +225,26 @@ f8a90ad 基线
|
||||
flutter build web # 目标:无 error,生成 build/web
|
||||
flutter run -d chrome # 目标:能打开、首页/商品/购物车/结账流程跑通
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 运行时问题(应用已能运行,以下为后续优化,非阻塞)
|
||||
|
||||
应用 `flutter run -d chrome` 已成功启动并加载首页/API 数据/数据库。控制台有以下运行时警告/异常:
|
||||
|
||||
### 9.1 Scrollbar 缺 ScrollPosition(真实,影响滚动条显示)
|
||||
4 个 `Scrollbar(` 未配 `controller`,新版 Flutter 的 Scrollbar 找不到 ScrollPosition:
|
||||
- `lib/pages/home.dart:101` — ✅ 已修:给 `SingleChildScrollView` 加 `primary: true`
|
||||
- `lib/pages/blog.dart:24` — 子是 `DesktopBlog`(自定义组件)
|
||||
- `lib/pages/download.dart:63` — 子是 `DesktopDownloadApps`(自定义组件)
|
||||
- `lib/widgets/desktop/shop.dart:137` — 包裹 `NotificationListener`
|
||||
|
||||
后 3 处的子是自定义组件,需让内部 ListView/ScrollView 暴露 controller(设 `primary: true`)或 Scrollbar 改用 `NotificationListener` 关联。**仅影响滚动条渲染,不影响内容加载/显示。**
|
||||
|
||||
### 9.2 CustomersLogo setState-after-dispose(小 bug)
|
||||
`lib/widgets/desktop/desktop_customers_logo.dart` 的 `Timer.periodic`(每 10s 刷新 logo)未在 `dispose()` 里 `cancel()`,组件卸载后 timer 仍触发 `setState`。建议在 `dispose` 里 `timer?.cancel()`。**热重载时易触发,干净启动偶发。**
|
||||
|
||||
### 9.3 `_business` LateInitializationError(热重载假象)
|
||||
`_business` 是店铺页面组件(`shop_promote.dart`/`shop.dart` 等)的 `late Business` 字段。热重载重建 widget 树时字段状态丢失触发,**干净启动(浏览器刷新 Cmd+R)不会出现**。
|
||||
|
||||
> **验证方式**:在浏览器里 Cmd+R 刷新页面(而非热重载),9.2/9.3 类异常应消失,仅剩 9.1 的滚动条警告。
|
||||
|
||||
Reference in New Issue
Block a user