问题标签 [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 - StreamBuilder TextField 在其他地方更改时不会更新其值
我有一个遵循 BLOC 模式的反应式登录表单。我正在尝试以编程方式清除其中的所有值。在我的 Bloc 中,我的提交函数将空字符串传递给我的流接收器:
当我按下调用此submit()
函数的提交按钮时,我收到两个文本字段的错误消息,因为电子邮件和密码的值在幕后发生了变化,但它们在 TextFields 中没有视觉更新。这是我的 TextFields 和提交按钮的 StreamBuilders:
这是我在 Bloc 中用于验证器的代码:
在我的验证器中,每当出现错误时,我都会发出一个空字符串。这使得 submitValid getter 在用户使曾经有效的内容无效时起作用。
flutter - Flutter rxDart BehaviorSubject 丢失错误消息
我有一个听流的TextField
内部。当快照有错误时,显示它。StreamBuilder
BehaviorSubject
errorText
问题是何时TextField
滚动出可见区域并在StreamBuilder
重建中回滚但错误文本消失了,因为这次snapshot.hasError
是错误的。
如何维护错误?
dart - 更改 StreamController 后按钮保持禁用状态.broadcast() 到 BehaviorSubject()
我使用 Streams 和 rxdart 进行表单验证。当我使用StreamController<String>.broadcast()
时,按钮启用-禁用逻辑工作正常。
BehaviorSubject<String>()
即使逻辑正确,将其更改为按钮仍处于禁用状态。
块飞镖
home.dart,两个文本字段和提交按钮
变化
在 bloc.dart
在 home.dart
我希望当逻辑正确时按钮应该保持启用状态,并且除非按下按钮,否则不应调用该方法
dart - 将多个 BehaviorSubject 流合并为一个?
我的目标是使用多个流而不必嵌套 3+ StreamBuilders。
我已经在使用 rxdart 并且我研究了 mergewith 但我真的不明白使用它的正确语法?
我目前有一个名为InfoBloc
. 这是里面的代码InfoBloc
现在在一个小部件内部,我需要名称、图片和描述快照。所以我通常会这样做
但是必须有更好的方法来做到这一点。
梦想是我可以在InfoBloc
文件中制作一些可以组合所有这些流的东西,并且我只需要使用一次 StreamBuilder 来流化组合的流。
flutter - 是否有类似于 CombineLatest 仅适用于 1 个流的功能?
我是 Rxdart 的新手,我已经为 2 种流尝试了 Combinelatest2,例如:
在我的 validateEmail 和 validatePassword 中:
这是我主页屏幕上的按钮:
如果使用 combinelatest2 我可以从 observable 获得 2 种发射的变化,我可以打开/关闭按钮,但如果我只想观察电子邮件,我该怎么做?如果来自电子邮件的发射器是正确的,则提交按钮打开,反之亦然
dart - 从 Stream 获取当前值
有一个 StreamBuilder(使用 RxDart)显示一些日期。单击 InkWell 小部件后,我需要在旧日期的基础上计算新日期。下面的代码简单地解释了算法,但是当我运行它时,没有任何反应,并且在下划线行之后执行停止,即我从未看到lastCalcDate的值。
图形用户界面:
集团:
为了实现我需要的东西,我创建了一些解决方法,但我不喜欢它,因为我认为我可以使用 observables 做同样的事情。
BLoC(解决方法):
你能有人给我建议吗。我做错了什么?
dart - 如何将 StreamBuilder 与 Observable 一起使用?
我正在尝试使用 StreamBuilder 对多个 Streams 做出反应。所以,我创建了一个 Observable 用于合并它们:
Observable.merge([stream1, stream2, stream3])
问题是:我不知道如何让 StreamBuilder 来监听这个 Observable。我该怎么做?
dart - 如何测试多个 Streams 是否按特定顺序发出?
我想验证多个 Streams 以特定顺序发出元素。
让我们采用以下 2 个 Streams。
可以执行emitsInOrder
以下操作:
但是我怎样才能轻松地测试这样的事情:
谢谢
编辑:我已经添加了解决此问题的尝试作为答案,并希望得到任何反馈。
dart - StreamBuilder 快照为空几秒钟
我正在尝试将 BLoC 模式与 RxDart 一起使用,并且我想通过 StreamBuilder 从列表中获取一个事件。
我的问题是,当我打开我的详细信息屏幕时,像 1 秒我收到以下错误消息:The method 'firstWhere' was called on null.
有没有办法在不添加加载进度的情况下等待获取数据,因为我想将 HeroAnimation 保留在我的图像上?
flutter - 如何创建一个新的其他流流,返回所有发出的值的列表(块模式)?
我有三个这样的流:
我想将它们全部合并,以便在需要时获取所有发出的值。
问题是..我正在使用 bloc 模式并且我没有 initState() 函数,所以我无法初始化东西..所以 dart 不会让我在同一个文件上做这样的事情:
我已经尝试了很多东西,但我不断收到错误消息:只有静态成员是可初始化的..或类似的东西..我如何使用反应式编程和 bloc 模式进行此操作?如果我在我需要的小部件上进行监听,我可能会丢失另一个小部件的信息。我尝试了 rxjs 示例,但在这里它不起作用,因为这只是类定义的东西。