问题标签 [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 回答
1481 浏览

firebase - 使用 Bloc、RxDart 和 Flutter 创建用户个人资料页面

我的目标是使用 bloc 模式在 Flutter 中创建一个编辑个人资料页面。

我已经搜索了一种更好/更清洁的方法来使用 Bloc 在 Flutter 中创建用户个人资料页面,但我找不到任何东西。

现在我必须列出每个字段。以下是 2 个字段的示例:

还有更多字段,如果可以避免的话,我不想拥有所有这些代码。

我宁愿只有 1 个用户群并更新该用户的特定字段。我已将以下内容添加到用户组中。

这是我的用户模型的示例:

问题是我不知道如何使用文本字段来编辑“用户”模型中的“拳头名称”和“姓氏”字段。

这可能吗,我是不是走错了路,还是应该坚持单独列出每个字段?

0 投票
1 回答
140 浏览

flutter - 如果 Observable 发出事件,为什么 StreamBuilder 的 hasData 属性没有设置为 True?

我需要实现搜索和显示结果。我使用来自 RxDart 的 Observables。

StreamBuilder 中的某个地方将此结果用作stream的源。在打开屏幕(没有搜索)我希望

因为我的 observable 发出了 SearchEmpty 但我得到了 false。我做错了什么?如果搜索结果为空,我只需要显示一些消息。

UPD:在对 StreamBuilder 进行额外调查、阅读 RxDart 文档和 pskink 信息系统化之后我得出的结论是我错了。switchIfEmpty()表示仅当原始流不返回任何内容(将值放置到sink之后)时才将流切换到回退。我需要使用startWith()来强制 observable 发出所需的起始值。所以正确的代码是

UPD2:在第一次构建小部件 StreamBuildersnapshop.hasData = false时,甚至使用 startWith() 因为connectionStatus = ConnectionStatus.waiting(即当流准备接收数据时)。为避免这种情况,您必须为initialData属性设置值。例如:

或者您可以在连接处于等待状态时返回一些小部件。例如:

0 投票
2 回答
4098 浏览

dart - StreamBuilder 不会在流中的新事件上重建

我的 StreamBuilder 视图:

我的肉块:

最后是我调用来启动新事件的代码(在这种情况下是 firebase 消息):

所以问题是当新事件通过alarmController.stream时StreamBuilder不会重建。可能是什么原因?

0 投票
3 回答
781 浏览

dart - 使用 combineLatest 启用/禁用按钮,但即使某些流包含错误,按钮也会启用

想要根据用户输入启用/禁用按钮。如果所有文本输入都匹配某个条件,则只有启用“插入”按钮。

通常,如果所有输入字段都正确,按钮才会启用。但是,如果一个或多个不正确,并且用户移动到另一个输入字段,并将其更改为正确/不正确,则即使某些字段输入错误,按钮也会启用。检查图像:

在此处输入图像描述

登录块代码:

按钮代码:

0 投票
2 回答
71 浏览

flutter - 如何在小部件树中保留块实例

我正在使用 InheritedWidget 将 bloc 类公开给子组件。但是,每次重新创建小部件树时,都会实例化一个 bloc 类的新实例。当我使用 BehaviourSubject 类来存储某些文本字段的最新值时,我会在每次娱乐时丢失当前值。如何解决这个问题,即 bloc 类应该只实例化一次。

0 投票
1 回答
595 浏览

flutter - StreamBuilder 未正确刷新新值

可能这是我的错或愚蠢的错误,但这就是发生在我身上的事情:

authController.dart:

Login_screen.dart:

一切顺利。但是,如果我在 authController.updateHometown 之前添加一个带有 async 和 await 的异步函数:

Login_screen.dart:

流永远不会收到新值,并且 StreamBuilder 永远不会重建!

但是如果我使用 statefulWidget 类:

一切都很顺利,即使我从不调用 setState 为什么会发生这种情况?

0 投票
1 回答
884 浏览

flutter - 如何在 Flutter 中测试更新 PublishSubject 或 BehaviorSubject 对象(RxDart)的异步函数

我已经学习 Flutter 几个星期了,到目前为止我有 Android 背景,我喜欢它,我也很高兴发现 Flutter 从一开始就考虑到了测试。但是,我在运行以下测试时遇到了问题。

我的 RepoSearchBloc 从 Repository 获取数据并将其转换为 Ui 模型。最后,它将现在 UI 就绪的数据发布到主题

这是 RepoSearchBloc 中正在测试的方法

当我运行测试时,无论我用 BehaviorSubject 或 PublishSubject 做什么,我都会不断收到此消息:

任何想法如何让这个测试通过?

0 投票
1 回答
734 浏览

flutter - 如何将每个项目从可观察到另一个来自异步函数的项目?

我想要

1.如果项目已经保存在数据库中,则将项目从可观察项目映射到另一个项目。

2.否则,按原样使用。

并在结果中保持他们的顺序。

保存的项目有一些属性,比如标签,来自 observable 的项目是“原始的”,它没有任何属性。

我写了这样的代码并运行 testMethod。

结果出乎意料之一。

预期的:

实际的:

如何保持他们的订单结果?

0 投票
1 回答
478 浏览

flutter - 如何在flutter redux中更新列表的属性

我正在尝试更新flutter redux中的一些属性,但出现以下错误

这是我的州课

我的动作看起来像这样

我的减速机看起来像这样

请帮忙。太感谢了。

0 投票
0 回答
215 浏览

flutter - 由于 dart SDK 版本中的一些问题,rxdart 没有安装在我的 PC 中

我正在尝试通过从https://pub.dev/packages/rxdart/versions/0.7.1#-installing-tab-复制它来安装 rxdart ,但它显示了一些错误。

当前的 Dart SDK 版本是 2.3.0-dev.0.5.flutter-a1668566e5。

因为flutter_course依赖于rxdart >=0.1.0+1 <0.16.0 需要SDK版本>1.12.0 <2.0.0,版本求解失败。发布失败 (1) 退出代码 1

我尝试使用颤振升级。但这不会改变任何事情。

我的 pubsec.yaml 文件