Dart 正确定义预变量以用于 for 语句
在 Dart 编程语言中,我之前写过这个循环:
for (final item in tempAddress) {
addresses.add(AddressCollection()
..label = item.label
..lat = item.lat
..long = item.long
);
}
现在,我无法定义
item.label
和其他人以从列表或地图中使用它们。例如我写了这样的代码:
final tempAddress = [
{
'label': 'new label'
}
];
但它会抛出一个错误,指出
label
未定义为地图。然后我这样定义它:
final List<Map<String, dynamic>> tempAddress = [
{
'label': 'new label'
}
];
但我仍然遇到同样的错误。
@collection
class AddressCollection {
Id id = Isar.autoIncrement;
@Backlink(to: 'locations')
final profile = IsarLink<ProfileCollection>();
@Backlink(to: 'orderLocation')
final order = IsarLink<OrdersCollection>();
late double lat;
late double long;
late String address;
late String deliveryOption;
String? businessName = '';
String? streetAddress = '';
late int postCode;
late String city;
int? unitNumber = 0;
String? label = '';
bool? isDefault = false;
}
定义这个变量的正确方法是什么?
我在 Flutter 和 Dart 方面没有那么进步,但只是学习者。
问题是循环中的 item 是一个 Map
例如:
for (final item in tempAddress) {
addresses.add(AddressCollection()
..label = item['label'] as String
..lat = item['lat'] as double
..long = item['long'] as double
);
}
希望这有帮助。