微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter-在一个请求中映射两个列表

如何解决Flutter-在一个请求中映射两个列表

我将映射列表(firstList)传递给Widget(作为模型),我想传递第二个作为regionModel。所以这是我的问题。是否可以在一个请求中映射两个列表(需要映射secondList并将其作为regionModel:value2传递)。我找到了类似IterableZip的东西,但不再支持


Widget _buildView(
    List<FirstListModels> firstList,List<SecondListModels> secondList,... 
children: firstList.map((value) {
              return Widget(
                  model: value,regionModel: value2);
            }).toList()

然后当我通过它们时,我会得到:

class SomeClass extends StatefulWidget {
  final FirstListModel model;
  final List<SecondListModel> regionModel;

因此,我需要摆脱列表,使其只有SecondListModel并具有如下输出

class SomeClass extends StatefulWidget {
  final FirstListModel model;
  final SecondListModel regionModel;

解决方法

如果两个列表的长度相同,则可以使用for循环和spread operator

void main() {
  final firstList = ['firstList - item #1','firstList - item #2'];
  final secondList = ['secondList - item #1','secondList - item #2'];

  final listOfModels = [
    for (var i = 0; i < firstList.length; i++) ...{
      SomeModel(model: firstList[i],region: secondList[i]),}
  ];

  print(listOfModels);
}

class SomeModel {
  final String model;
  final String region;
  SomeModel({this.model,this.region});

  toString() => 'SomeModel(model: $model,region: $region)';
}
,

已解决

我照原样保留它,然后将模型和列表与firstWhere进行比较,并从中返回字符串(URL的一部分)

String _compareLists(){
  var result = widget.secondList.firstWhere(
    (element) => element?.property == widget.firstList.property,orElse: () => null)
    .?propertyContainsUrl ?? "";


    return result
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?