Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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_Flutter Navigation_Flutter Routes_Flutter Localizations - Fatal编程技术网

Flutter 使用路由时对空值使用的空检查运算符

Flutter 使用路由时对空值使用的空检查运算符,flutter,flutter-navigation,flutter-routes,flutter-localizations,Flutter,Flutter Navigation,Flutter Routes,Flutter Localizations,我正在重构我的应用程序,以支持使用。有一次我需要从使用home属性切换到使用initialRoute和routes。相关代码片段如下所示: return PlatformApp( material: (_, platform) => MaterialAppData(theme: materialThemeData), cupertino: (_, platform) => CupertinoAppData(theme: cupertin

我正在重构我的应用程序,以支持使用。有一次我需要从使用
home
属性切换到使用
initialRoute
routes
。相关代码片段如下所示:

return PlatformApp(
            material: (_, platform) => MaterialAppData(theme: materialThemeData),
            cupertino: (_, platform) => CupertinoAppData(theme: cupertinoTheme),
            onGenerateTitle: (context) {
              return AppLocalizations.of(context).appTitle;
            },
            localizationsDelegates: [
              AppLocalizations.delegate,
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
              GlobalCupertinoLocalizations.delegate,
            ],
            supportedLocales: [
              const Locale('de', ''),
              const Locale('en', ''),
            ],
            initialRoute: '/',
            routes: {
              '/': (context) {
                return MyHomeScreen(title: AppLocalizations.of(context).appTitle);
              },
            },
            // home:MyHomeScreen(title: 'Static Title'),
          );
        }
当我尝试在iOS上运行此操作时,会生成以下错误:

======== Exception caught by widgets library =======================================================
The following _CastError was thrown building Builder(dirty):
Null check operator used on a null value

The relevant error-causing widget was: 
  CupertinoApp file:///Users/user/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_platform_widgets-1.7.1/lib/src/platform_app.dart:673:14
When the exception was thrown, this was the stack: 
#0      _WidgetsAppState._onGenerateRoute.<anonymous closure> (package:flutter/src/widgets/app.dart:1196:48)
#1      CupertinoPageRoute.buildContent (package:flutter/src/cupertino/route.dart:359:55)
#2      CupertinoRouteTransitionMixin.buildPage (package:flutter/src/cupertino/route.dart:227:26)
#3      _ModalScopeState.build.<anonymous closure>.<anonymous closure> (package:flutter/src/widgets/routes.dart:840:53)
#4      Builder.build (package:flutter/src/widgets/basic.dart:7555:48)
...
====================================================================================================

@puelo的评论帮助我弄明白了这一点


问题是,在初始化过程的早期,我初始化了Firebase应用程序,并根据结果提供了不同的应用程序小部件。如果firebase仍在加载或抛出错误,我会提供一个带有
home
属性集的简单应用程序-这就是问题所在。现在我更改了它,使应用程序始终保持不变,但加载和错误状态由导航来处理。

您的
初始路由的父项是什么?您正在运行的主窗口小部件。@我添加了更多的代码,以便您可以看到更多的上下文。您是否正在离家出走。这很奇怪。我已经追踪到了颤振代码中的bug,它似乎不知怎么地认为
home
是非空的。您是否在重新启动应用程序之前尝试过
flatter clean
,只是为了保持清醒?
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.2.3 20D91 darwin-x64, locale en-CH)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] Connected device (4 available)

• No issues found!