Class 省道颤振:为类构造函数设置默认值时,可选参数的默认值必须为常量
我创建了一个类Class 省道颤振:为类构造函数设置默认值时,可选参数的默认值必须为常量,class,flutter,dart,default-value,Class,Flutter,Dart,Default Value,我创建了一个类JobBloc,它包含许多属性,其中一个是另一个类对象JobModel,我想为这些属性中的每一个指定一个默认值,除了JobModel属性外,它工作正常: class JobBloc with JobModelFormValidator { final JobModel jobModel; final bool isValid; final bool showErrorMessage; final String name; final double ratePer
JobBloc
,它包含许多属性,其中一个是另一个类对象JobModel
,我想为这些属性中的每一个指定一个默认值,除了JobModel
属性外,它工作正常:
class JobBloc with JobModelFormValidator {
final JobModel jobModel;
final bool isValid;
final bool showErrorMessage;
final String name;
final double ratePerHour;
final bool enableForm;
final bool showIcon;
JobBloc({
// The default value of an optional parameter must be constant.
this.jobModel = JobModel(name: 'EMPTY', ratePerHour: 0.01), // <= the error stems from this line
this.isValid = false,
this.showErrorMessage = false,
this.name = 'EMPTY',
this.enableForm = true,
this.ratePerHour = 0.01,
this.showIcon = false,
});
}
使用JobModelFormValidator类JobBloc{
最终职位模型职位模型;
最终bool有效;
最终bool消息;
最后的字符串名;
每小时最终双倍费率;
最终bool使能形式;
最终的布尔showIcon;
就业集团({
//可选参数的默认值必须为常量。
this.jobModel=jobModel(名称:'EMPTY',ratephour:0.01),//试试这可能是什么
class JobBloc with JobModelFormValidator {
final JobModel jobModel;
final bool isValid;
final bool showErrorMessage;
final String name;
final double ratePerHour;
final bool enableForm;
final bool showIcon;
JobBloc({
this.jobModel = const JobModel(name: 'EMPTY', ratePerHour: 0.01),
this.isValid = false,
this.showErrorMessage = false,
this.name = 'EMPTY',
this.enableForm = true,
this.ratePerHour = 0.01,
this.showIcon = false,
});
}
不能在类模型中初始化对象
尝试:
或者更新jobModel类
class JobModel {
final String name;
final double ratePerHour;
JobModel({
this.name = 'EMPTY',
this.ratePerHour = 0.01,
});
}
谢谢你,我很困惑,因为有太多的方法来编写相同的东西。第一个解决方案奏效了,你能解释一下第一个语法吗?冒号的含义和用途是什么?
:在这里?构造函数后的冒号在颤振中被称为初始值设定项列表。它允许你初始化类的字段,进行断言和调用超级构造函数。如果您想了解更多信息:
class JobModel {
final String name;
final double ratePerHour;
JobModel({
this.name = 'EMPTY',
this.ratePerHour = 0.01,
});
}