Ошибка: значение типа AppStateNotifier не может быть присвоено переменной типа Widget - PullRequest
0 голосов
/ 04 августа 2020

Следуя этому руководству. 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').
  • 'Widget' из 'пакет: flutter / src / widgets / framework.dart' ('../../Developer/flutter/packages/flutter/lib/src/widgets/framework.dart'). Builder: (context) => AppStateNotifier (),

lib / main.dart: 16: 16: Ошибка: тип аргумента «Функция виджета (BuildContext)» не может быть назначен параметру type 'Функция виджета (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 (),

1 Ответ

0 голосов
/ 05 августа 2020

Попробуйте заменить builder на create в виджете ChangeNotifierProvider.

...