处理颤振中的动态元素

时间:2021-07-12 17:14:17

标签: flutter response

我有一个旧代码接受一个响应(列表类型),我曾经以一种丑陋的方式处理它,因为我知道响应是一个大数组。

List<CsC> newList = new List<CsC>();
if (response[0].length > 0) {
  for (int i = 0; i < response[0].length; i++) {
    if ((response[0][i][0] != BigInt.from(0) || i == 0) ||
        (response[0][0][0] != response[0][i][0] && i != 0)) {
      newList.add(CsC(
          response[0][i][0], //BigInt
          response[0][i][1], //String
          response[0][i][2], //String
          response[0][i][3], //String
          response[0][i][4], //BigInt
    }
  }

在一些 flutter 版本更新后,我现在面临该解决方案的问题,因为响应现在被视为“动态”,因此我无法再调用构造函数。

如何处理?我完全被阻止了。甚至检查 response[0].length > 0 也必须替换为 if(response[0] != null)。我现在无法获得 response[0].length 循环,也无法调用 CsC 的构造函数。

非常感谢..

1 个答案:

答案 0 :(得分:0)

解决方案是将每个变量转换为 Lee3 提到的

for(int i=0; i< (response[0] as List).length; ++i){
    newList.add(CsC(
      response[0][i][0] as BigInt,
      response[0][i][1] as String,
      response[0][i][2] as String,
      response[0][i][3] as String,
      response[0][i][4] as BigInt,
    ));
  }