无法使用可选参数 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;
}
我无法定义这个构造函数:
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;
}