flutter - 使用flutter_bloc进行flutter国际化
问题描述
Bloc 很好,因为它可以在没有上下文的情况下工作。内化需要上下文。您可以尝试将其传递给块,但在我的情况下,块在内部化之前被初始化。MaterialApp之前的MultiProvider,如何更改顺序并在bloc内部使用内部化?
class MyApp extends StatelessWidget {
final routes = <String, WidgetBuilder>{
StartPage.routeName: (BuildContext context) => new StartPage(),
EditorPage.routeName: (BuildContext context) => new EditorPage(),
};
@override
Widget build(BuildContext context) {
//localization always == null
var localization = S.of(context);
return MultiProvider(
providers: [
ChangeNotifierProvider.value(
value: ChannelModel(),
),
BlocProvider<InternetBloc>(
create: (context) => InternetBloc(localizations: localization),
),
BlocProvider<MultiBloc>(
create: (context) => MultiBloc(),
),
BlocProvider<DbBloc>(
create: (context) => DbBloc(),
),
BlocProvider<FileBloc>(
create: (context) => FileBloc(),
),
],
child: MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: StartPage(),
routes: routes,
));
}
}
解决方案
推荐阅读
- python - 训练后如何打开tensor-board生成的二进制日志文件?
- c# - 删除 GridView 上的最后一项时发生错误
- opencv - 使用 Git Bash 使用 Tesseract 构建 OpenCV
- javascript - 如何在使用 splice() 时将更改的数组存储到对象属性中
- javascript - 如何添加安全性以便不会从浏览器的 html 代码中删除模态窗口?
- javascript - 我无法让我的反转数组打印到 console.log 调用它
- php - 如何将给定的 PHP CLI 窗口标记为“紧急”/“需要注意”?
- android - 无法在 android studio 中运行颤振项目
- ios - 0x8badf00d:在 didCompleteWithError 之后调用 urlSessionDidFinishEvents
- aws-lambda - AWS SAM 模板设置环境特定变量