# LinksyApp 强制依赖 ChatBloc ## 问题描述 `LinksyApp` (app.dart) 作为应用根节点,被迫在 `MultiBlocProvider` 中注入 `ChatBloc`: ```dart return MultiBlocProvider( providers: [ BlocProvider.value(value: authBloc), BlocProvider( create: (_) => ChatBloc(apiClient: sl()), ), ], ... ); ``` 这导致: 1. 应用启动时就创建 `ChatBloc` 实例(内存浪费) 2. `LinksyApp` 需要知道"存在 ChatBloc 这个 Feature" 3. 违反单一职责原则:根节点应只负责全局配置,不应了解具体 Feature ## 根本原因 `HomeScreen` 是默认首页,其内部需要 `ChatBloc`。为了让它通过 `context.read()` 获取,被迫在根节点提供。 ## 正确做法 ChatBloc 应该在路由级别按需注入: ```dart GoRoute( path: '/', builder: (context) => BlocProvider( create: (_) => ChatBloc(apiClient: sl()), child: const HomeScreen(), ), ) ``` ## 相关文件 - `apps/lib/app/app.dart` - `apps/lib/features/home/presentation/screens/home_screen.dart` ## 修复优先级 **中等** - 功能正常但架构不合理,属于技术债