【问题标题】:Flutter list values not updating颤振列表值未更新
【发布时间】:2020-04-19 02:53:01
【问题描述】:

我的列表无法在颤动中更新时遇到问题,我有一个 for 循环来填充机器的代码,并且在我的列表 _machines 中接收来自网络服务的数据,它有一个代码在其中,但是当我尝试将该代码分配给我的其他列表时 ma​​chineDetails 它没有传递值,

代码如下:

 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

但我的列表 ma​​chineDetails 列表确实会更新为 _machines 列表的长度:

I/flutter (14487): MachineDetails Lenght RegisterTime: 6

感谢您的时间和关注

【问题讨论】:

  • 控制台可能有一些错误?否则显示 MachineDetails 类会有所帮助..
  • 控制台没有任何错误,我的 MachineDetails 类如下: class MachineDetails { String code;布尔工作; }

标签: android list flutter


【解决方案1】:

如果没有错误,我认为问题在于使用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}');

    ......

【讨论】:

    【解决方案2】:
    machineDetails[i].code = _machines[i].vCodigo;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2021-11-19
      • 2020-06-03
      • 2020-11-22
      • 1970-01-01
      相关资源
      最近更新 更多