如何使用 BLOC 为对象列表创建流和接收器

Posted

技术标签:

【中文标题】如何使用 BLOC 为对象列表创建流和接收器【英文标题】:How to create a stream and sink for List of objects using BLOC 【发布时间】:2021-04-20 19:31:59 【问题描述】:

我有一个对象列表:

[name: "Rob", age: 20, name: "Bob", age: 30,]

如何为此创建流和接收器?

我到处搜索,但找不到任何解决方案。

我知道 String 或 double 或任何其他数据类型,如下所示:

  final _name = BehaviorSubject<String>();

  Stream<String> get name => _name.stream;

  Function(String) get changeName => _name.sink.add;

提前致谢!!!

【问题讨论】:

【参考方案1】:

按照您的示例代码,您可以为地图列表创建一个流和接收器,如下所示:

final _personList = BehaviorSubject<List<Map<String, dynamic>>>();

Stream<List<Map<String, dynamic>>> get name => _name.stream;

Function(List<Map<String, dynamic>>) get changeName => _name.sink.add;

【讨论】:

但是如何明智地添加姓名和年龄索引? 您可以在将项目添加到接收器之前对列表进行排序。

以上是关于如何使用 BLOC 为对象列表创建流和接收器的主要内容,如果未能解决你的问题,请参考以下文章

Akka HTTP:如何将 Json 格式响应解组为域对象

如何收听我的 bloc 流中的变化

使用具有列表类型参数的 dart 类,如何使其具有等价性

颤振搜索栏与带有firestore的块

如何在请求后更改块状态数据而不再次发送请求?

如何使用flutter bloc模式通过分页加载数据列表?