问题标签 [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.
dart - 如何在颤动中缓存 rxdart 流以实现无限滚动
我来自react native
移动开发方面的背景,我使用过类似的工具apollo
,redux
所以rxdart
对我来说有点困惑。paginatePolls
只需从服务器检索简单的对象列表并添加到流中,PollScreen
类正在呈现结果。一切正常,但我很好奇如何缓存第一个paginatePolls
请求,以便我可以使用count
(要返回的文档数)last
(从先前结果返回的最后一项的 ID)进行后续查询,并将结果附加到已经存在的内容.
在我提出更多请求时apollo
,redux
我只会将越来越多的文档添加到缓存中,但由于rxdart
是一个流,我不确定哪种方法最有效。
我曾想过使用 sqlite 进行缓存,但似乎是一个巨大的过度杀戮 + 不确定它是否足够快。
我想到的下一个方法是在块中创建一个列表,并在发出更多请求时继续向其中添加项目。然后每次都流式传输整个列表。但这意味着为每个流重新创建整个列表,例如第一次请求渲染 1-50,第二次渲染 1-100,第三次渲染 1-150,其中更可取的是 - 第一次渲染 1-50,第二次渲染 51-100并附在第一个渲染下方,等等。
您如何使用 Flutter 实现对应物apollo
和redux
缓存rxdart
?
dart - Dartlang rxdart - 合并不同类型的流
这是我的用例:
我有两个不同的Observables
:
当这两个中的任何一个发出事件时,我需要接收通知。zipWith
对我不起作用,因为它会等到两个流都有要发出的事件。mergeWith
似乎也不起作用,因为它希望两个流都来自同一类型。任何提示将不胜感激,谢谢。
dart - StreamBuilder 的快照没有给出 Flutter 中 Stream 发出的所有数据
Text
我正在尝试使用以下代码在小部件上打印 1、2 和 3 。但问题是它只打印 1 和 3。但是通过属性 concat 应该按顺序打印所有数据对吗?
奇怪的是,如果我使用以下配置。它按顺序打印所有 3 个值。可能是什么问题?
我的代码StreamBuilder
:
rxjs - combineLatest2 只有第一个非空流输出
我有两个来自 firestore 的流,我只需要在这两个流第一次产生值时进行计算密集型操作。
我已经考虑过combineLatest2()
,但据我所知,这将在每次流产生输出时执行(不仅仅是第一次)。
我考虑过.firstWhere()
,但我不知道如何组合流来使用它。
任何建议,将不胜感激。
谢谢
dart - 为什么子小部件 StreamBuilders 没有收到错误?
我正在为 RxDart 苦苦挣扎(也许只是直接进行 Rx 编程)。我目前有一个有状态的小部件,它在它的didChangeDependencies()
. 该调用发出并通过 http 请求获取数据并将其添加到流中。我正在使用BehaviorSubject
,这很好用。我有使用 StreamBuilders 的子小部件,它们获取数据没有问题。我的问题在于处理错误。如果我的 http 请求失败,我会使用流水化流,addError('whatever error')
但我的子小部件的 StreamBuilder 没有收到该错误。它什么也得不到。
所以我有几个问题。
- 这是预期的吗?
- 不应该在 StreamBuilder 中进行错误处理吗?理想情况下,如果出现问题,我想在 UI 中显示一些东西,所以不知道该怎么做。
- 我可以让我的孩子小部件有状态并使用
stream.listen
. 我确实收到了那里的错误,但是拥有它和 StreamBuilder 似乎有点过头了。 - 我在这里遗漏了一些关于流和错误处理的基本知识吗?
这是我的集团:
简化的父小部件:
带有 StreamBuilder 的简化子小部件:
flutter - Flutter BLoC 架构列表和详细信息屏幕
关于 Bloc 和 Flutter 的架构问题。
我有一个列表屏幕,其中填充了StreamBuilder
.
在项目点击时,它会打开一个详细信息屏幕,用户可以在其中编辑该项目的值。
必须将该更改传播到 List Screen Bloc,以便在关闭 Detail Screen 时,更改已反映在列表中。
我正在考虑共享同一个集团,但认为可能有更好的方法。
有任何想法吗?谢谢。
dart - 如何根据第一个流中的事件启动第二个流?
在我的 BLOC 中,我需要听取FirebaseAuth.instance.onAuthStateChanged
并根据用户uid
将启动第二个流Firestore.instance.collection('accounts/${uid}/private').snapshots()
并将结果组合到一个模型:
该模型需要与 BehaviorSubject 一起流出。使用 rxdart 完成此任务的最佳方法是什么?
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!
dart - rxdart BehaviorSubject 不会在 iOS 上发出最后一个值
我正在构建一个 Flutter 应用程序并遇到了以下问题。按照 BLoC 模式,我的代码结构如下:
集团:
状态:
在 Android 上,一切都按预期工作。build 方法被调用 for
Data.loading()
和 for Data.success()
。
然而,在 iOS 上,我根本没有收到任何数据(snapshot.hasdata == false
)。我添加了一个按钮,单击该按钮会监听流并打印接收到的值。在 Android 上,我收到了最后一个事件,正如 BehaviorSubject 所期望的那样。在 iOS 上,listen 方法没有被调用。
按钮: