flutter - 找不到正确的提供者

标签 flutter dart flutter-dependencies flutter-provider

我正在尝试使用身份验证提供程序进行身份验证。
我首先尝试使用常规的 ChangeNotifierProvider,但它不起作用。
然后我使用 MultiProvider 并且它仍然不起作用。
我在互联网上阅读了任何内容,但没有任何工作..
有人知道如何解决吗?
我检查了所有的进口商品,一切都很好。
我有另一个应用程序,我使用了相同的技术并且一切正常..

import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';

import './screens/main_screen.dart';
import './screens/auth_screen.dart';
import './providers/Auth.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(
          create: (context) => Auth(),
        ),
      ],
      child: Consumer<Auth>(
        builder: (ctx, auth, child) => MaterialApp(
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
          ],
          supportedLocales: [
            Locale("he", "IR"),
          ],
          locale: Locale("he", "IR"),
          debugShowCheckedModeBanner: false,
          title: 'Loyalty Punch Card For Stores',
          theme: ThemeData(
            primaryColor: Color.fromRGBO(4, 30, 80, 1),
            accentColor: Color.fromRGBO(175, 234, 220, 1),
          ),
          home: auth.isAuth ? MainScreen() : AuthScreen(),
        ),
      ),
    );
  }
}

最佳答案

修改main()方法如

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations(
      [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]).then((_) {
    runApp(MyApp());
  });
}
WidgetsFlutterBinding.ensureInitialized()如果需要在调用 [runApp] 之前初始化绑定(bind),则需要调用此方法。
为什么它不起作用:
因为 setPreferredOrientations 与异步执行任务的 native 代码交互,所以 ensureInitialized()用于确保您拥有 WidgetsBinding 的实例.
更多引用:
https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html

关于flutter - 找不到正确的提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63976756/

相关文章:

dart - 使用 Flutter 获取 Firestore 文档 key

android - flutter 构建 APK : Execution failed for task ':speech_recognition:verifyReleaseResources'

android - 尝试将音频 Assets 设置为 Android 上的铃声

flutter - 如何阻止flutter web在每次构建时覆盖我的index.html?

dart - 在 Flutter 中插入生成的列表

dart - 扩展 List<T> 类

flutter - `Thur, Aug 23` flutter 的日期格式

flutter 和 Dart : What is the correct way to manage obtained data from a computation made in an Isolate?

flutter - 错误: Undefined name 'context' in flutter

flutter - 在 ListView flutter 中选择下一个单选按钮时,单选按钮会发生变化