[英]i use ChangeNotifierProvider for darkmode in my main.dart file got this error Failed assertion: boolean expression must not be null
I use ChangeNotifierProvider for Darkmode in my maindart file got this error Failed assertion: Boolean expression must not be null我在我的 maindart 文件中将 ChangeNotifierProvider 用于 Darkmode 时出现此错误 Failed assertion: Boolean expression must not be null
import 'package:provider/provider.dart';导入“包:提供者/提供者.dart”;
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
final isDark = sharedPreferences.getBool("is_dark") ?? false;
return runApp(
MyApp(),
);
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
final bool isDark;
MyApp({Key key, this.isDark});
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => ThemeSettings(isDark),
builder: (context, snapshot) {
final settings = Provider.of<ThemeSettings>(context);
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: settings.currentTheme,
home: MyHomePage(),
);
},
);
}
}
`
You are forgetting to pass the isDark variable from the main function to the MyApp constructor您忘记将 isDark 变量从主 function 传递给 MyApp 构造函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.