简体   繁体   English

我在我的 main.dart 文件中使用 ChangeNotifierProvider 作为暗模式出现此错误断言失败:boolean 表达式不得为 null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM