我有一个类似这样的简单类:
class Staff {
final String name;
final String id;
Staff({this.name, this.id});
}
然后在tutorial article on applying BLoC之后,我把它放在State class
中,如下所示:
class SignInState {
final String href;
final Staff staff;
SignInState({this.href = '', this.staff= Staff(name:'', id:'')});
}
但是在this.staff= Staff(name: '', id: '')
中,我总是得到错误:
The default value of an optional parameter must be constant.
final Staff staff = Staff(name: '', id: '')
工作。
为什么它在那一行不起作用,而是产生一个错误?
2条答案
按热度按时间im9ewurl1#
在您的示例中,staff参数的默认值不是
compile-time constant
,因为它涉及使用非常量的构造函数参数(name和id)示例化新的Staff对象。您可以使用具有默认值的非可选构造函数参数:
u5rb5r592#
我认为你可以为
Staff
创建一个常量构造函数然后可以对
SignInState
使用const