在颤振列表中使用未来对象的数据

Posted

技术标签:

【中文标题】在颤振列表中使用未来对象的数据【英文标题】:Using a future object's data in a flutter list 【发布时间】:2020-06-05 08:44:13 【问题描述】:
  @override
  void initState() 
    super.initState();
    futureInfo = fetchInfo();
  

  Future<Info> futureInfo;
  List<String> prices = [];
  List<String> duration = ["11 hours", "14 hours", "15 hours","12 hours", "10 hours", "8 hours",];
  List<String> airline = ["Middle East Airline", "Air Canada Airline", "Turkish Airline","Middle east Airline", "Turkish Airline", "Air Canada Airline",];
  List<String> destination = ['Beirut','Madrid'];

你好 我对颤动还是很陌生,我只是想知道如何在价格列表中使用未来对象 futureInfo 中的数据,其中 futureInfo 是一个解析的 Json 文件到我拥有的类中,我希望能够访问它的属性. 您还可以向我推荐任何可能帮助我了解更多技术部分的 Flutter/dart 的文档或视频,而不是更多的 UI 内容。(例如:函数、状态、变量......)

【问题讨论】:

【参考方案1】:

我建议你放置 info 对象

信息信息;

而不是

未来futureInfo;

,然后像这样使您的 fetchInfo() 方法异步,

fetchInfo()async
//inside async method you can wait for any future to complete using await keywork

await operation1;
await operation2;

//then setState your Info object
setState(() 
  this.info = newValue;
);



为了更清楚,请发布完整代码会更容易。

【讨论】:

我添加了可能有帮助的代码。我想从作为列表的信息中获取数据,并将其作为列表单独使用以显示在卡片中。有什么建议?我目前正在使用从列表 获取信息的卡片。有没有办法直接从类型数据列表中显示它们。 我检查了所以而不是return Info.fromJson(json.decode(response.body)); 只是setState(() this.info = Info.fromJson(json.decode(response.body)); ); @RamiHoteit 当你说“我目前正在使用从列表中获取信息的卡片。”你的意思是哪个列表 或卡片列表 如果你让它更清楚一点,我会尽力提供帮助。 我已经添加了我的卡片小部件构建。我的意思是有没有办法直接使用 List 而不是使用 4 个单独的列表来显示价格和东西等内容。【参考方案2】:

为了了解未来,你应该通过这个:https://dart.dev/codelabs/async-await

如果你是新手,那么我建议你通过这个进行 Http 调用:https://flutter.dev/docs/cookbook/networking/fetch-data

否则,我会要求您关注 Bloc 库,以获得处理状态变化的深入知识。 Bloc 库在这里:https://bloclibrary.dev/

【讨论】:

在一个完全不涉及状态管理的期货问题中推荐 BLoC 是非常离题的。不要让与他们的问题无关的信息使新开发人员过载。 好的,那么您的帮助材料可在第 2 个链接中找到。未来、异步、等待和 https 响应。

以上是关于在颤振列表中使用未来对象的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何迭代对象列表并使用颤振在小部件中获取它们的属性?

在颤振中使用列表视图搜索数据时出错

在颤振中显示仅产品名称的列表,使用json格式的woocommerce api数据

在颤振飞镖中合并2个对象列表的最简单方法是啥?

如何从 Firebase Firestore 获取数据并将其存储在列表中以在颤振小部件中使用?

使用 api 在颤振中返回卡片列表