问题标签 [rxdart]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1203 浏览

dart - 如何在颤动中缓存 rxdart 流以实现无限滚动

我来自react native移动开发方面的背景,我使用过类似的工具apolloredux所以rxdart对我来说有点困惑。paginatePolls只需从服务器检索简单的对象列表并添加到流中,PollScreen类正在呈现结果。一切正常,但我很好奇如何缓存第一个paginatePolls请求,以便我可以使用count(要返回的文档数)last(从先前结果​​返回的最后一项的 ID)进行后续查询,并将结果附加到已经存在的内容.

在我提出更多请求时apolloredux我只会将越来越多的文档添加到缓存中,但由于rxdart是一个流,我不确定哪种方法最有效。

我曾想过使用 sqlite 进行缓存,但似乎是一个巨大的过度杀戮 + 不确定它是否足够快。

我想到的下一个方法是在块中创建一个列表,并在发出更多请求时继续向其中添加项目。然后每次都流式传输整个列表。但这意味着为每个流重新创建整个列表,例如第一次请求渲染 1-50,第二次渲染 1-100,第三次渲染 1-150,其中更可取的是 - 第一次渲染 1-50,第二次渲染 51-100并附在第一个渲染下方,等等。

您如何使用 Flutter 实现对应物apolloredux缓存rxdart

0 投票
2 回答
3702 浏览

dart - Dartlang rxdart - 合并不同类型的流

这是我的用例:

我有两个不同的Observables

当这两个中的任何一个发出事件时,我需要接收通知。zipWith对我不起作用,因为它会等到两个流都有要发出的事件。mergeWith似乎也不起作用,因为它希望两个流都来自同一类型。任何提示将不胜感激,谢谢。

0 投票
0 回答
556 浏览

dart - StreamBuilder 的快照没有给出 Flutter 中 Stream 发出的所有数据

Text我正在尝试使用以下代码在小部件上打印 1、2 和 3 。但问题是它只打印 1 和 3。但是通过属性 concat 应该按顺序打印所有数据对吗?

奇怪的是,如果我使用以下配置。它按顺序打印所有 3 个值。可能是什么问题?

我的代码StreamBuilder

0 投票
2 回答
115 浏览

rxjs - combineLatest2 只有第一个非空流输出

我有两个来自 firestore 的流,我只需要在这两个流第一次产生值时进行计算密集型操作。

我已经考虑过combineLatest2(),但据我所知,这将在每次流产生输出时执行(不仅仅是第一次)。

我考虑过.firstWhere(),但我不知道如何组合流来使用它。

任何建议,将不胜感激。

谢谢

0 投票
1 回答
312 浏览

dart - 为什么子小部件 StreamBuilders 没有收到错误?

我正在为 RxDart 苦苦挣扎(也许只是直接进行 Rx 编程)。我目前有一个有状态的小部件,它在它的didChangeDependencies(). 该调用发出并通过 http 请求获取数据并将其添加到流中。我正在使用BehaviorSubject,这很好用。我有使用 StreamBuilders 的子小部件,它们获取数据没有问题。我的问题在于处理错误。如果我的 http 请求失败,我会使用流水化流,addError('whatever error')但我的子小部件的 StreamBuilder 没有收到该错误。它什么也得不到。

所以我有几个问题。

  1. 这是预期的吗?
  2. 不应该在 StreamBuilder 中进行错误处理吗?理想情况下,如果出现问题,我想在 UI 中显示一些东西,所以不知道该怎么做。
  3. 我可以让我的孩子小部件有状态并使用stream.listen. 我确实收到了那里的错误,但是拥有它和 StreamBuilder 似乎有点过头了。
  4. 我在这里遗漏了一些关于流和错误处理的基本知识吗?

这是我的集团:

简化的父小部件:

带有 StreamBuilder 的简化子小部件:

0 投票
3 回答
563 浏览

flutter - Flutter BLoC 架构列表和详细信息屏幕

关于 Bloc 和 Flutter 的架构问题。
我有一个列表屏幕,其中填充了StreamBuilder.
在项目点击时,它会打开一个详细信息屏幕,用户可以在其中编辑该项目的值。
必须将该更改传播到 List Screen Bloc,以便在关闭 Detail Screen 时,更改已反映在列表中。

我正在考虑共享同一个集团,但认为可能有更好的方法。

有任何想法吗?谢谢。

0 投票
1 回答
380 浏览

dart - 如何根据第一个流中的事件启动第二个流?

在我的 BLOC 中,我需要听取FirebaseAuth.instance.onAuthStateChanged并根据用户uid将启动第二个流Firestore.instance.collection('accounts/${uid}/private').snapshots()并将结果组合到一个模型:

该模型需要与 BehaviorSubject 一起流出。使用 rxdart 完成此任务的最佳方法是什么?

0 投票
0 回答
1592 浏览

dart - RxDart CombineLatest 不发出数据

我正在用FLUTTER/DARTand做一个小项目RXDART

以下是部分代码:

问题是 validForm Stream 发出空数据并且组合器永远不会被调用,即使所有流已经发出至少 1 个值。最糟糕的是,这只发生在 Android(我的 v.8.1.0)上,代码在 iOS 11 上的工作方式与预期一样。

如果有人想知道,我使用 StreamBuilder 小部件来更新小部件数据。

我在这里错过了什么吗?任何配置都需要事先设置,否则。

在此处输入图像描述

这是我的开发环境:

RxDart:0.21.0 Android 设备:8.1.0

0 投票
3 回答
489 浏览

dart - 如何在颤振中降级 rxdart 插件?

如图所示,我遵循了这一点(只有前 3 分钟与我的问题相关):https ://m.youtube.com/watch?v=MYHVyl-juUk

当我尝试运行它时,它会出现在控制台中:

因为 geoflutterfire 2.0.3+2 依赖于 rxdart ^0.20.0 并且没有任何版本的 geoflutterfire 匹配 >2.0.3+2 <3.0.0,所以 geoflutterfire ^2.0.3+2 需要 rxdart ^0.20.0。所以,因为 my_app 同时依赖于 rxdart ^0.21.0 和 geoflutterfire ^2.0.3+2,版本求解失败。

当前版本(和我安装的版本)是 rxdart 0.21.0。我试图通过将其更改为 0.20.0 来降级它并获得颤振包,但它没有用。

顺便说一句,这是我第一次尝试插件,所以我对解决这类问题没有任何线索......

我能做些什么来完成这项工作?

亲切的问候

更新:

在我尝试了这个之后:

控制台抛出了这个:

然后我编辑了 Podfile 代码:需要添加或编辑的代码标有“** ...... **”

然后我删除了我的 Podfile.lock 并再次尝试,应用程序编译成功。感谢C4C!

0 投票
1 回答
1278 浏览

dart - rxdart BehaviorSubject 不会在 iOS 上发出最后一个值

我正在构建一个 Flutter 应用程序并遇到了以下问题。按照 BLoC 模式,我的代码结构如下:

集团:

状态:

在 Android 上,一切都按预期工作。build 方法被调用 for Data.loading()和 for Data.success()

然而,在 iOS 上,我根本没有收到任何数据(snapshot.hasdata == false)。我添加了一个按钮,单击该按钮会监听流并打印接收到的值。在 Android 上,我收到了最后一个事件,正如 BehaviorSubject 所期望的那样。在 iOS 上,listen 方法没有被调用。

按钮: