Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用多供应商颤振进行定位,未显示此类方法错误_Flutter_Dart_Localization_Provider - Fatal编程技术网

Flutter 使用多供应商颤振进行定位,未显示此类方法错误

Flutter 使用多供应商颤振进行定位,未显示此类方法错误,flutter,dart,localization,provider,Flutter,Dart,Localization,Provider,当我尝试在颤振中使用本地化提供程序时,它没有显示这样的方法错误 我还使用提供商进行身份验证,使用谷歌和fb以及电子邮件身份验证,但同时我还需要在应用程序中实现本地化,如下所示 import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.

当我尝试在颤振中使用本地化提供程序时,它没有显示这样的方法错误

我还使用提供商进行身份验证,使用谷歌和fb以及电子邮件身份验证,但同时我还需要在应用程序中实现本地化,如下所示

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
import 'package:rewahub/AppLanguage.dart';
import 'package:rewahub/locator.dart';
import 'package:rewahub/models/auth_model.dart';
import 'app_localizations.dart';
import 'views/login_page.dart';
import 'views/main_page.dart';

void main() async{
  AppLanguagemodel appLanguagemodel = AppLanguagemodel();
  await appLanguagemodel.fetchLocale();
  setupLocator();
  runApp(MyApp(appLanguagemodel:appLanguagemodel,));
}

class MyApp extends StatelessWidget {
  final AppLanguagemodel appLanguagemodel;

  MyApp({this.appLanguagemodel});
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(
         builder: (_) => appLanguagemodel,
         child: Consumer<AppLanguagemodel>(builder: (context, appmodel, child) {
        return MaterialApp(
          //locale: model.fetchLocale(),
          locale: appmodel.appLocal,
          supportedLocales: [
            Locale('en', 'US'),
            Locale('ar', ''),
          ],
          localizationsDelegates: [
           AppLocalizations.delegate,
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
          ],

          home: LogInPage(),
        );
      }),
        ),
   ChangeNotifierProvider(builder: (_) => locator<AuthModel>()),
      ],


      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        // initialRoute: '/',
        //onGenerateRoute: Router.generateRoute,
        home: ScreensController(),
      ),
    );
  }
}

class ScreensController extends StatelessWidget {
  final StreamController<bool> _verificationNotifier =


  @override
  Widget build(BuildContext context) {
   final user = Provider.of<AuthModel>(context);
    switch (user.status) {
      case Status.Unauthenticated:
       // return LanguageSelect();
      case Status.Authenticating:
        return LogInPage();
      case Status.Authenticated:
        return MainPage();
      default:
        return LogInPage();
    }
  }
}
导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“package:flatter_本地化/flatter_本地化.dart”;
导入“包:provider/provider.dart”;
进口“包装:rewahub/AppLanguage.dart”;
导入“package:rewahub/locator.dart”;
导入“package:rewahub/models/auth_model.dart”;
导入“app_localizations.dart”;
导入“视图/登录页面.dart”;
导入“视图/主页面.dart”;
void main()异步{
ApplAngugeModel ApplAngugeModel=ApplAngugeModel();
等待appLanguagemodel.fetchLocale();
setupLocator();
runApp(MyApp(appLanguagemodel:appLanguagemodel,);
}
类MyApp扩展了无状态小部件{
最终ApplangueModel ApplangueModel;
MyApp({this.appLanguagemodel});
@凌驾
小部件构建(构建上下文){
回程多供应商(
供应商:[
变更通知提供者(
生成器:()=>appLanguagemodel,
子项:使用者(生成器:(上下文、应用模型、子项){
返回材料PP(
//语言环境:model.fetchLocale(),
区域设置:appmodel.appLocal,
支持的区域设置:[
地区('en','US'),
语言环境('ar',''),
],
本地化授权:[
AppLocalizations.delegate,
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
主页:登录页面(),
);
}),
),
ChangeNotifierProvider(生成器:(\u)=>locator()),
],
孩子:MaterialApp(
debugShowCheckedModeBanner:false,
//initialRoute:“/”,
//onGenerateRoute:Router.generateRoute,
主页:屏幕控制器(),
),
);
}
}
类ScreensController扩展了无状态小部件{
最终流控制器\u验证通知程序=
@凌驾
小部件构建(构建上下文){
最终用户=提供者(上下文);
开关(用户状态){
案例状态。未经验证:
//返回语言select();
案例状态。验证:
返回登录页面();
案例状态。已验证:
返回主页();
违约:
返回登录页面();
}
}
}
这就像

  runApp(MultiProvider(
  providers: [

    ChangeNotifierProvider.value(value: CurrentData()),
    ChangeNotifierProvider.value(value: AppProvider()),
    ChangeNotifierProvider.value(value: UserProvider.initialize()),
  ],
 child:  Consumer<CurrentData>(
   builder: (context, provider, child) => MaterialApp(
     debugShowCheckedModeBanner: false,
     //title: 'Flutter App Localization with Provider demo',
     locale: Provider.of<CurrentData>(context).locale,
     home: ScreensController(),
     localizationsDelegates: [
       const AppLocalizationDelegate(),
       GlobalMaterialLocalizations.delegate,
       GlobalWidgetsLocalizations.delegate,
     ],
     supportedLocales: [
       const Locale('en'),
       const Locale('ar'),
       const Locale('fr'),
       const Locale('es'),
       const Locale('ru'),
     ],
   ),
 ),
 ));
runApp(多供应商)(
供应商:[
ChangeNotifierProvider.value(值:CurrentData()),
ChangeNotifierProvider.value(值:AppProvider()),
ChangeNotifierProvider.value(值:UserProvider.initialize()),
],
儿童:消费者(
生成器:(上下文、提供者、子项)=>MaterialApp(
debugShowCheckedModeBanner:false,
//标题:“Flitter应用程序本地化与提供商演示”,
locale:Provider.of(context.locale),
主页:屏幕控制器(),
本地化授权:[
常量AppLocalizationDelegate(),
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
支持的区域设置:[
常量区域设置('en'),
常量区域设置('ar'),
常量区域设置('fr'),
常量区域设置('es'),
常量区域设置('ru'),
],
),
),
));
这就像

  runApp(MultiProvider(
  providers: [

    ChangeNotifierProvider.value(value: CurrentData()),
    ChangeNotifierProvider.value(value: AppProvider()),
    ChangeNotifierProvider.value(value: UserProvider.initialize()),
  ],
 child:  Consumer<CurrentData>(
   builder: (context, provider, child) => MaterialApp(
     debugShowCheckedModeBanner: false,
     //title: 'Flutter App Localization with Provider demo',
     locale: Provider.of<CurrentData>(context).locale,
     home: ScreensController(),
     localizationsDelegates: [
       const AppLocalizationDelegate(),
       GlobalMaterialLocalizations.delegate,
       GlobalWidgetsLocalizations.delegate,
     ],
     supportedLocales: [
       const Locale('en'),
       const Locale('ar'),
       const Locale('fr'),
       const Locale('es'),
       const Locale('ru'),
     ],
   ),
 ),
 ));
runApp(多供应商)(
供应商:[
ChangeNotifierProvider.value(值:CurrentData()),
ChangeNotifierProvider.value(值:AppProvider()),
ChangeNotifierProvider.value(值:UserProvider.initialize()),
],
儿童:消费者(
生成器:(上下文、提供者、子项)=>MaterialApp(
debugShowCheckedModeBanner:false,
//标题:“Flall应用本地化,提供程序演示”,
locale:Provider.of(context.locale),
主页:屏幕控制器(),
本地化授权:[
常量AppLocalizationDelegate(),
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
支持的区域设置:[
常量区域设置('en'),
常量区域设置('ar'),
常量区域设置('fr'),
常量区域设置('es'),
常量区域设置('ru'),
],
),
),
));

Hy,请在此处添加问题的完整错误日志。你解决了吗?Hy,你能在这里添加你的问题的完整错误日志吗。你解决了吗?