我正在关注 ResoCoder 的优秀 DDD Flutter 课程,但我正在尝试使用最新的 pubspecs 将代码更新为空安全。https://youtu.be/7qMADWW4gts
我遇到了最新版本的 AutoRoute 的问题,自 1.0 版以来,它不再具有 ExtendedNavigator 类。
在 app_widget.dart 的课程中,Matt 有以下代码:
class AppWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (context) =>
getIt<AuthBloc>()..add(const AuthEvent.authCheckRequested()),
)
],
child: MaterialApp(
title: 'Notes',
debugShowCheckedModeBanner: false,
builder: ExtendedNavigator.builder(router: app_router.Router()),
theme: ThemeData.light().copyWith(
primaryColor: Colors.green[800],
accentColor: Colors.blueAccent,
floatingActionButtonTheme: FloatingActionButtonThemeData(
backgroundColor: Colors.blue[900],
),
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
),
),
),
),
);
}
}
我遇到的问题是,自 null 安全版本 1.0 以来,AutoRoute 中不再存在 ExtendedNavigator 类。我希望能够使用 Bloc 模式进行状态管理,但无法弄清楚如何将其连接到 AutoRoute,如 DDD 课程中所述。
builder: ExtendedNavigator.builder(router: app_router.Router()),
auto_route 包页面上的示例代码告诉我按如下方式连接路由器:
final _appRouter = AppRouter()
...
Widget build(BuildContext context){
return MaterialApp.router(
routerDelegate: _appRouter.delegate(...initialConfig),
routeInformationParser: _appRouter.defaultRouteParser(),
),
}
由于 MaterialApp 是 MultiBlocProvider 的子级,我不知道如何访问 MaterialApp.router,如 auto_route 示例中所述。