问题标签 [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 投票
2 回答
1307 浏览

dart - StreamBuilder TextField 在其他地方更改时不会更新其值

我有一个遵循 BLOC 模式的反应式登录表单。我正在尝试以编程方式清除其中的所有值。在我的 Bloc 中,我的提交函数将空字符串传递给我的流接收器:

当我按下调用此submit()函数的提交按钮时,我收到两个文本字段的错误消息,因为电子邮件和密码的值在幕后发生了变化,但它们在 TextFields 中没有视觉更新。这是我的 TextFields 和提交按钮的 StreamBuilders:

这是我在 Bloc 中用于验证器的代码:

在我的验证器中,每当出现错误时,我都会发出一个空字符串。这使得 submitValid getter 在用户使曾经有效的内容无效时起作用。

0 投票
1 回答
499 浏览

flutter - Flutter rxDart BehaviorSubject 丢失错误消息

我有一个听流的TextField内部。当快照有错误时,显示它。StreamBuilderBehaviorSubjecterrorText

问题是何时TextField滚动出可见区域并在StreamBuilder重建中回滚但错误文本消失了,因为这次snapshot.hasError是错误的。

如何维护错误?

0 投票
1 回答
623 浏览

dart - 更改 StreamController 后按钮保持禁用状态.broadcast() 到 BehaviorSubject()

我使用 Streams 和 rxdart 进行表单验证。当我使用StreamController<String>.broadcast()时,按钮启用-禁用逻辑工作正常。

BehaviorSubject<String>()即使逻辑正确,将其更改为按钮仍处于禁用状态。

块飞镖

home.dart,两个文本字段和提交按钮

变化

在 bloc.dart

在 home.dart

我希望当逻辑正确时按钮应该保持启用状态,并且除非按下按钮,否则不应调用该方法

0 投票
2 回答
2757 浏览

dart - 将多个 BehaviorSubject 流合并为一个?

我的目标是使用多个流而不必嵌套 3+ StreamBuilders。

我已经在使用 rxdart 并且我研究了 mergewith 但我真的不明白使用它的正确语法?

我目前有一个名为InfoBloc. 这是里面的代码InfoBloc

现在在一个小部件内部,我需要名称、图片和描述快照。所以我通常会这样做

但是必须有更好的方法来做到这一点。

梦想是我可以在InfoBloc文件中制作一些可以组合所有这些流的东西,并且我只需要使用一次 StreamBuilder 来流化组合的流。

0 投票
1 回答
874 浏览

flutter - 是否有类似于 CombineLatest 仅适用于 1 个流的功能?

我是 Rxdart 的新手,我已经为 2 种流尝试了 Combinelatest2,例如:

在我的 validateEmail 和 validatePassword 中:

这是我主页屏幕上的按钮:

如果使用 combinelatest2 我可以从 observable 获得 2 种发射的变化,我可以打开/关闭按钮,但如果我只想观察电子邮件,我该怎么做?如果来自电子邮件的发射器是正确的,则提交按钮打开,反之亦然

0 投票
1 回答
8173 浏览

dart - 从 Stream 获取当前值

有一个 StreamBuilder(使用 RxDart)显示一些日期。单击 InkWell 小部件后,我需要在旧日期的基础上计算新日期。下面的代码简单地解释了算法,但是当我运行它时,没有任何反应,并且在下划线行之后执行停止,即我从未看到lastCalcDate的值。

图形用户界面:

集团:

为了实现我需要的东西,我创建了一些解决方法,但我不喜欢它,因为我认为我可以使用 observables 做同样的事情。

BLoC(解决方法):

你能有人给我建议吗。我做错了什么?

0 投票
1 回答
299 浏览

dart - 如何将 StreamBuilder 与 Observable 一起使用?

我正在尝试使用 StreamBuilder 对多个 Streams 做出反应。所以,我创建了一个 Observable 用于合并它们:

Observable.merge([stream1, stream2, stream3])

问题是:我不知道如何让 StreamBuilder 来监听这个 Observable。我该怎么做?

0 投票
1 回答
992 浏览

dart - 如何测试多个 Streams 是否按特定顺序发出?

我想验证多个 Streams 以特定顺序发出元素。

让我们采用以下 2 个 Streams。

可以执行emitsInOrder以下操作:

但是我怎样才能轻松地测试这样的事情:

谢谢

编辑:我已经添加了解决此问题的尝试作为答案,并希望得到任何反馈。

0 投票
2 回答
1219 浏览

dart - StreamBuilder 快照为空几秒钟

我正在尝试将 BLoC 模式与 RxDart 一起使用,并且我想通过 StreamBuilder 从列表中获取一个事件。

我的问题是,当我打开我的详细信息屏幕时,像 1 秒我收到以下错误消息:The method 'firstWhere' was called on null.

有没有办法在不添加加载进度的情况下等待获取数据,因为我想将 HeroAnimation 保留在我的图像上?

0 投票
1 回答
952 浏览

flutter - 如何创建一个新的其他流流,返回所有发出的值的列表(块模式)?

我有三个这样的流:

我想将它们全部合并,以便在需要时获取所有发出的值。

问题是..我正在使用 bloc 模式并且我没有 initState() 函数,所以我无法初始化东西..所以 dart 不会让我在同一个文件上做这样的事情:

我已经尝试了很多东西,但我不断收到错误消息:只有静态成员是可初始化的..或类似的东西..我如何使用反应式编程和 bloc 模式进行此操作?如果我在我需要的小部件上进行监听,我可能会丢失另一个小部件的信息。我尝试了 rxjs 示例,但在这里它不起作用,因为这只是类定义的东西。