我有一个旧代码接受一个响应(列表类型),我曾经以一种丑陋的方式处理它,因为我知道响应是一个大数组。
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 的构造函数。
非常感谢..
答案 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,
));
}