【发布时间】:2022-01-21 23:35:11
【问题描述】:
我是 Flutter 新手,我正在从头开始构建我的第一个 Flutter 2 项目。
我遇到了问题 ->
themeMode: (state is ChangeThemeSuccess) ? (state.isDarkMode) ? ThemeMode.dark : ThemeMode.light : ThemeMode.light,
它说(state.isDarkMode) 无法识别
我该如何解决这个问题?
谢谢
main.dart
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
// Initialize all bloc provider used on this entire application here
return MultiBlocProvider(
providers: [
// this bloc used for feature - change language
BlocProvider<LanguageCubit>(
create: (BuildContext context) => LanguageCubit(),
),
// this bloc used to change theme on feature list
BlocProvider<ThemeCubit>(
create: (BuildContext context) => ThemeCubit(),
),
],
child: InitialLanguage(
child: BlocBuilder<LanguageCubit, LanguageState>(
builder: (context, state) {
return MaterialApp(
debugShowCheckedModeBanner: true,
scrollBehavior: CustomScrollBehavior(),
title: appName,
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
themeMode: (state is ChangeThemeSuccess)
? (state.isDarkMode)
? ThemeMode.dark
: ThemeMode.light
: ThemeMode.light,
// below is used for language feature
supportedLocales: const [
Locale('en', 'US'),
Locale('sv', 'SE'),
],
localizationsDelegates: const [
AppLocalizationsDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
// Returns a locale which will be used by the app
locale: (state is ChangeLanguageSuccess)
? state.locale
: const Locale('en', 'US'),
home: const Navigation(),
);
},
),
),
);}}
theme_state.dart
@immutable
abstract class ThemeState {}
class ThemeInitial extends ThemeState {}
class ChangeThemeSuccess extends ThemeState {
final bool isDarkMode;
ChangeThemeSuccess(this.isDarkMode);
}
【问题讨论】:
-
BlocBuilder
这行是问题尝试将 LanguageState 更改为 ChangeThemeSuccess
标签: android ios flutter dart themes