【问题标题】:A value of type 'Null' can't be returned from the method 'onGenerateRoute' because it has a return type of 'Route<dynamic>'无法从方法“onGenerateRoute”返回“Null”类型的值,因为它的返回类型为“Route<dynamic>”
【发布时间】:2022-01-26 04:57:57
【问题描述】:

实际上我正在尝试添加生成路由,但我遇到了这个错误 无法从方法“onGenerateRoute”返回“Null”类型的值,因为它的返回类型为“Route” 下面是我的代码

class AppRouter {
   Route onGenerateRoute(RouteSettings routeSettings) {
    switch (routeSettings.name) {
      case '/':
        return MaterialPageRoute(builder: (_) => const SplashScreen());
        break;
      default:
        return null;
    }
  }
}

【问题讨论】:

  • 您好,您可以添加更多代码吗?比如,你的方法 onGenerateRoute 被调用的地方

标签: flutter dart bloc flutter-bloc


【解决方案1】:

下面的代码为我解决了这个问题

class AppRouter {
  Route? onGenerateRoute(RouteSettings routeSettings) {
    switch (routeSettings.name) {
      case '/':
        return MaterialPageRoute(builder: (_) => const SplashScreen());
        break;
      default:
        return null;
    }
  }
}

【讨论】:

    【解决方案2】:

    这是因为你默认返回null,你必须从函数返回Route对象。要正确修复它,可能在默认选项中指定到主屏幕的路由。

    【讨论】:

      【解决方案3】:

      我确定你不应该返回 null,你必须在每个状态中返回一个 MaterialPageRoute。您可以定义一个默认页面,如空容器或错误页面以显示在未知的 routeSettings 中。

      class AppRouter {
        Route onGenerateRoute(RouteSettings routeSettings) {
         switch (routeSettings.name) {
          case '/':
           return MaterialPageRoute(builder: (_) => const SplashScreen());
           break;
          default:
           return MaterialPageRoute(builder: (_) => Scaffold(body: Container(),),);
         }
        }
      }
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2021-09-14
        • 1970-01-01
        • 2021-01-25
        • 2021-09-27
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2022-01-26
        相关资源
        最近更新 更多