可选参数的默认值必须是具有类构造函数的常量flutter [duplicate]

tez616oj  于 2022-12-27  发布在  Flutter
关注(0)|答案(1)|浏览(287)

此问题在此处已有答案

The default value of an optional parameter must be constant(1个答案)
昨天关门了。


对于动态路由,我想在构造函数的类中设置详细页面的路由。但是我得到了一个错误。我做错了什么?

class RoutesF {
      String varGames = '';
      static String profile = '/profile';
      static String singn = '/signin';
      static String gamesRoute = '/games';
      final String gameDetailRoute = '/games/';
    
      RoutesF({
        required this.varGames,
        this.gameDetailRoute = this.gameDetailRoute + this.varGames,
      });
    }
sr4lhrrt

sr4lhrrt1#

你的工作效率很低。如果你的值是常量,为什么你要声明它们为临时字段。看这个例子。这段代码做了你想做的:

void main() {
  var route = RoutesF("someGame");
  print(route.gameDetailRoute);
}

class RoutesF {
  late final String varGames;
  static const String profile = '/profile';
  static const String singn = '/signin';
  static const String gamesRoute = '/games';
  late final String gameDetailRoute;

  RoutesF(this.varGames) {
    gameDetailRoute = "${RoutesF.gamesRoute}/$varGames";
  }
}

只要EXECUTING这个命令,你就可以测试一切正常。

不知何故,我想通过以下方式完成此任务:

void main() {
  print(RoutesF.gameDetailRoute("someGame"));
}

class RoutesF {
  static const String profile = '/profile';
  static const String singn = '/signin';
  static const String gamesRoute = '/games';
  static String gameDetailRoute(String varGames)=>"$gamesRoute/$varGames";
}

我认为它更容易维护,也更容易理解。

相关问题