list - 在 Flutter 中使用 Dart,如何添加到地图列表中的地图列表中?
问题描述
我使用 Dart/Flutter 组合处于初级和中级之间。
我正在建立一个航海日志,我需要能够记录由可变数量的活动组成的职责。请参阅下面的代码。在此示例中,我有两个职责,每个职责包含 1 个活动。
List<Map<String, dynamic>> duties = [
{
'date': '12122021',
'dutyStart': '00:00',
'dutyFinish': '12:00',
'skipper': 'Mark',
'crew': 'My Crew',
'assets': 'G1',
'activity': [
{
'activityType': 'Training',
'trainingActivityDetail': 'Navigation',
'wapolJobNumber': null,
'rapNumber': null,
'activityStart': '02:00',
'activityFinish': '03:00',
'startFuel': 100,
'endFuel': 300,
'fuelUsed': 200,
}
],
},
{
'date': '01092021',
'dutyStart': '18:00',
'dutyFinish': '23:00',
'skipper': 'Neil',
'crew': 'My Crew',
'assets': 'G2',
'activity': [
{
'activityType': 'WAMSAR',
'trainingActivityDetail': null,
'wapolJobNumber': '123',
'rapNumber': '456',
'activityStart': '19:00',
'activityFinish': '20:00',
'startFuel': 1000,
'endFuel': 3000,
'fuelUsed': 2000,
}
],
}
];
我已经制定了如何使用以下代码添加职责:
//add a duty
duties.add(
{
'date': '111111',
'dutyStart': '11:11',
'dutyFinish': '22:22',
'skipper': 'Tom',
'crew': 'My Crew',
'assets': 'Ranger',
'activity': [
{
'activityType': 'WAMSAR',
'trainingActivityDetail': null,
'wapolJobNumber': '000',
'rapNumber': '999',
'activityStart': '19:00',
'activityFinish': '20:00',
'startFuel': 1000,
'endFuel': 3000,
'fuelUsed': 2000,
}
],
},
);
但我不知道如何将活动添加到职责中。
例如,我如何将下面的活动添加到最后一个职责,以便最后一个职责现在有 2 个活动而不是 1 个?:
{
'activityType': 'XXX',
'trainingActivityDetail': null,
'wapolJobNumber': '000',
'rapNumber': '999',
'activityStart': '19:00',
'activityFinish': '20:00',
'startFuel': 1000,
'endFuel': 3000,
'fuelUsed': 2000,
}
现在我只是在没有保存在任何地方的列表视图构建器中使用数据。它将最终保存在 Firestore 云中。只是想知道如何在 Firestore 中保存活动?我很高兴在 Firestore 中保存职责,但还没有进入列表中的保存列表。
抱歉,如果之前已对此进行了介绍。我在发布之前确实检查过,但没有看到任何帮助。
解决方案
你可以试试这个。这里我们在最后一个任务中插入activity元素,如下:
duties.last["activity"].add(
{
'activityType': 'WAMSAR',
'trainingActivityDetail': null,
'wapolJobNumber': '000',
'rapNumber': '999',
'activityStart': '19:00',
'activityFinish': '20:00',
'startFuel': 1000,
'endFuel': 3000,
'fuelUsed': 200023,
}
);
print(duties);
输出
[{date: 12122021, dutyStart: 00:00, dutyFinish: 12:00, skipper: Mark, crew: My Crew, assets: G1, activity: [{activityType: Training, trainingActivityDetail: Navigation, wapolJobNumber: null, rapNumber: null, activityStart: 02:00, activityFinish: 03:00, startFuel: 100, endFuel: 300, fuelUsed: 200}]}, {date: 01092021, dutyStart: 18:00, dutyFinish: 23:00, skipper: Neil, crew: My Crew, assets: G2, activity: [{activityType: WAMSAR, trainingActivityDetail: null, wapolJobNumber: 123, rapNumber: 456, activityStart: 19:00, activityFinish: 20:00, startFuel: 1000, endFuel: 3000, fuelUsed: 2000}, {activityType: WAMSAR, trainingActivityDetail: null, wapolJobNumber: 000, rapNumber: 999, activityStart: 19:00, activityFinish: 20:00, startFuel: 1000, endFuel: 3000, fuelUsed: 200023}]}]
推荐阅读
- java - 布尔语法。请解释
- linux - awk:命令。line:1:fatal: 除零尝试
- c++ - 无法显示二叉搜索树 C++
- r - 具有基于 nginx cookie 的身份验证的闪亮应用程序(LDAP / Active Directory)
- windows - 即使我的 PATH 变量已更新,g++ 也无法识别
- reactjs - 如何使用具有不同 Firebase 托管的子域?
- node.js - 如何使我的所有标题元素通过 nginx 到我的节点 js api
- spring-boot - 在控制器中传递服务的功能以不复制 try catch 块
- vue.js - nuxtjs 页面在 nuxtServerInit 完成之前呈现表达式
- android - String is NULL but IsNullOrEmpty function not working