flutter - 错误:“AppStateNotifier”类型的值不能分配给“Widget”类型的变量
问题描述
按照本教程。https://itnext.io/app-theming-in-flutter-dark-mode-light-mode-27d9adf3cee
void main() {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
runApp(
ChangeNotifierProvider<AppStateNotifier>(
builder: (context) => AppStateNotifier(), //<--COMPILER ERROR, details below.
child: MyApp(),
),
);
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return Consumer<AppStateNotifier>(
builder: (context, appState, child) {
return MaterialApp(
title: 'Lockify',
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
darkTheme:
AppTheme.darkTheme,
home: MyHomePage(),
themeMode: appState.isDarkModeOn ? ThemeMode.dark : ThemeMode.light,
);
},
);
}
}
错误:编译器消息:lib/main.dart:16:29:错误:“AppStateNotifier”类型的值不能分配给“Widget”类型的变量。
- “AppStateNotifier”来自“package:lockify/appstatenotifier.dart”(“lib/appstatenotifier.dart”)。
- “小部件”来自“package:flutter/src/widgets/framework.dart”(“../../Developer/flutter/packages/flutter/lib/src/widgets/framework.dart”)。构建器:(上下文)=> AppStateNotifier(),
lib/main.dart:16:16:错误:无法将参数类型“Widget Function(BuildContext)”分配给参数类型“Widget Function(BuildContext, Widget)”。
- “小部件”来自“package:flutter/src/widgets/framework.dart”(“../../Developer/flutter/packages/flutter/lib/src/widgets/framework.dart”)。
- “BuildContext”来自“package:flutter/src/widgets/framework.dart”(“../../Developer/flutter/packages/flutter/lib/src/widgets/framework.dart”)。构建器:(上下文)=> AppStateNotifier(),
解决方案
尝试在小部件上更改builder
为。create
ChangeNotifierProvider
推荐阅读
- python - python dict中值的频率计数
- html - 相对于背景定位图像
- audio - 如何将音频文件从 16 位更改为 8 位
- sql-server - 回滚并通知 sql 事务中是否出现问题
- c++ - C++:将字符串转换为双精度
- magento - 如何在 Magento 2 中使用后插件(拦截器)时获取新创建的产品 ID
- python - Astropy Cutout2D,引发 ValueError
- delphi - 当什么都没有发生时,为什么我会在数据模块中遇到访问冲突?
- c - 为什么在很多地方 *p() 被称为返回指针的函数而不是返回地址的函数?
- java - Android Path - 通过X轴值获取特定点的坐标