【发布时间】:2020-07-30 10:23:06
【问题描述】:
我正在尝试在 Event 类中组织一些 Site 类数据,但我得到一个“可选参数的默认值必须是常量”,而我已经为此苦苦挣扎了一段时间。
我发现了这个:Default values of an optional parameter must be constant,但我很难将该示例的细节与我的代码联系起来。
我的意图是使用 Site 类在 Site 构造函数中查找所有相关的站点数据(地址、电话等),然后将其存储在 Event 类中作为它自己的参数......但我'不确定最好的方法。
代码如下:
class Event {
// passed
final TimeOfDay earliestTime;
final DateTime startTime;
final String siteName;
Site siteInfo;
Event(
{
@required this.earliestTime,
@required this.startTime,
@required this.siteName,
this.siteInfo = Site(siteName)} //<-- "Site(siteName) is underlined in red with the
// non_constant_default_value error
) { }
}
class Site {
String siteName;
Site(String siteName) {
this.siteName = "Site 1"; //<-- my attempt at a default value
int index = sites.indexOf(siteName);
phone = phones[index];
addressStreet = addressStreets[index];
}
String addressStreet;
String phone;
}
List<String> sites = [ // <-- Site lookup table
"Site 1",
"Site 2",
];
List<String> phones = [ // <-- use index to get values
"(312)857-5309",
"(773)857-5310",
];
List<String> addressStreets = [
"123 Bear St.",
"234 Elk St.",
];
简而言之,错误是什么?如何使用 Site 类将所有站点数据保存在 Event 类中?
【问题讨论】:
标签: class flutter dart constructor