我遇到了麻烦,我的列表没有及时更新,我有一个for循环来填充机器代码,在我的列表_machines中,它从Web服务接收数据,但其中有一个代码,但是当我尝试分配该代码时到我的其他列表机上,它没有传递值,
这是代码:
Future<void> _registerTime(int index) async {
try {
setState(() {
_loading = true;
});
String res = await gruposRepo.timeRegisterWorks(widget.worker.toString(),
widget.work, widget.product, widget.task, _machines[index].vCodigo);
print(res);
print("MachineDetails Lenght RegisterTime: ${machineDetails.length}");
for (int i = 0; i < _machines.length; i++) {
print('Machines $i code: ${_machines[i].vCodigo}');
machineDetails[i]?.code = _machines[i].vCodigo;
print('MachineDetails $i code: ${machineDetails[i]?.code}');
if (res == '1') {
machineDetails[i]?.working = true;
} else if (res == '2') {
machineDetails[i]?.working = false;
}
}
print(machineDetails[index]?.working);
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(Translations.of(context).trans('saved')),
actions: <Widget>[
FlatButton(
child: Text('OK'),
onPressed: () => Navigator.of(context).pop(),
)
],
);
});
} catch (e) {
this._errorMsg = e.toString();
}
setState(() {
_loading = false;
});
}
这是输出:
I/flutter (14487): Machines 0 code: 4
I/flutter (14487): MachineDetails 0 code: null
I/flutter (14487): Machines 1 code: 3
I/flutter (14487): MachineDetails 1 code: null
I/flutter (14487): Machines 2 code: 22
I/flutter (14487): MachineDetails 2 code: null
I/flutter (14487): Machines 3 code: 9
I/flutter (14487): MachineDetails 3 code: null
I/flutter (14487): Machines 4 code: 25
I/flutter (14487): MachineDetails 4 code: null
I/flutter (14487): Machines 5 code: 26
I/flutter (14487): MachineDetails 5 code: null
但是我的列表machineDetails列表确实随着_machines列表的长度而更新:
I/flutter (14487): MachineDetails Lenght RegisterTime: 6
谢谢您的时间和关注
如果没有错误,我认为问题在于使用,machineDetails[i]?.code
因此请检查以下更新的代码,可能会有所帮助。
......
for (int i = 0; i < _machines.length; i++) {
print('Machines $i code: ${_machines[i].vCodigo}');
machineDetails[i]=MachineDetails(); //line added
machineDetails[i].code = _machines[i].vCodigo; //line updated
print('MachineDetails $i code: ${machineDetails[i]?.code}');
......
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句