无法使用可选参数 Dart 定义构造函数

Can't define constructor with optional parameters Dart

我无法定义这个构造函数:

class Artists_Showroom extends StatefulWidget {
  Artists_Showroom( //error 1 here
      {Key key,
      @required this.lista,
      @required this.database,
      @required this.artistaCorrente,
      [this.color = null]}). //error 2 here on first square brachet
      : super(key: key);
  final List<Artista> lista;
  final Artista artistaCorrente;
  final Database database;
  final Color color;

错误 1:

All final variables must be initialized, but 'color' isn't.
Try adding an initializer for the field.

错误 2:

Expected to find '}'.
Expected an identifier.

它一直有效到现在,因为我需要添加一个可选参数(在本例中是一种颜色)。我从来没有使用过可选参数,所以我不知道如何声明它们。

我做了一些研究并尝试了 Whosebug 的不同解决方案,但没有一个有效。

您不能同时有 Positional 个可选参数 []Named 个可选参数 {}。看看 。 如果您也想保留 Named 参数,可以执行以下操作。

class Artists_Showroom extends StatefulWidget {
  const Artists_Showroom({
    Key key,
    @required this.lista,
    @required this.database,
    @required this.artistaCorrente,
    this.color,
  }) : super(key: key);

  final List<Artista> lista;
  final Artista artistaCorrente;
  final Database database;
  final Color color;
}