当前位置: 首页 > 面试题库 >

根据Dart / Flutter中的过滤器更新流

斜瑞
2023-03-14
问题内容

我有一个BLoC,它使用原始输入Stream(产生JSON对象列表)并将其转换为使用的可用对象StreamTransformer。UI将显示该列表。用户可以应用过滤器(本身就是流到BLoC中的流),以便BLoC用相应的where(...)语句更新输入流转换器。

问题是:当过滤器更改时,UI不会更新,因为输出流取决于JSON输入流(而不是过滤器流)的事件。我的假设是,我需要创建自己的流,将输入事件和过滤器事件都转发到该流中,或者我需要在转换后的输入流上重复最后一个事件,以使转换器有机会拾取它。如何正确完成?一个例子会很有帮助!


问题答案:

您的假设是正确的。您需要创建第三个流,同时接收JSON流和过滤流,并将两者组合成自定义结果。

这通常是通过流转换器完成的。使用myStream.transform方法。但这有点复杂。

为了使事情变得更加简单,有一个名为rxdart的软件包,该软件包基本上是子类,Stream并添加了一些常见的转换器。

使用rxdart,您可以使用combineLatest运算符创建第三个流

Observable<List<String>> list;
Observable<String> filter;

final output = Observable.combineLatest2(filter, list, (String filter, List<String> list) {
  return list.where((str) => str.startsWith(filter));
});

有关reactx运算符的更多信息,请点击此处



 类似资料:
  • 可以对搜索结果进行过滤,只显示包含特定字段值的文档。也可以创建否定过滤器,排除包含特定字段值的文档。 从 Fields 表或 Documents 表中选择要添加的字段过滤器。除了可以创建积极字段和消极过滤器外,Documents 表还可以过滤某一字段是否存在。使用过的过滤器会在 Query 栏下方显示。消极过滤器用红色显示。 从 Fields 列表中添加一个过滤器: 点击想要过滤的字段名。这里显示

  • 因为依赖于cupergino_icons>=1.0.1需要SDK版本>=2.12.0-0<3.0.0,所以版本解决失败。 每当我尝试、、时,我都会在控制台中得到这个返回。我还尝试了它返回 如何更新Dart SDK?

  • 众所周知,典型的浮点数据类型(即和

  • 我想知道是否有办法在过滤掉elasticsearch文档后更新它们。 假设我有一个包含以下文档的用户集合: 现在我需要做的是更新所有30岁以上用户的名字。查看大量文档并在谷歌上搜索数小时,包括以下文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_updating_documents.html 我找不到办

  • 问题内容: 我试图执行以下SQL查询并根据日期过滤出数据。 我需要显示一个表,该表过滤掉数据,使得仅那些提到的start_date和end_date之间的行 这是我一直在尝试的查询 我也从2012年获得了具有价值的结果。请帮帮我 谢谢 问题答案: 由于您没有提及任何错误(如果和是数据类型),因此查询没有任何问题。如果您没有获得正确的记录,请检查数据。 但是你的。您可以遵循一些好的做法来避免此类问题

  • 我如何解决这个问题?我还有JDK 8 安装的飞镖插件