问题标签 [bloc]
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 - Bloc 模式不会在屏幕上显示新添加的用户到 sqflite
我正在使用sqflite
数据库来保存用户列表。我有用户列表屏幕,它显示用户列表,它有一个 fab 按钮,单击 fab 按钮,用户被重定向到下一个屏幕,他可以在其中将新用户添加到数据库。新用户已正确插入数据库,但当用户按下后退按钮并返回用户列表屏幕时,新添加的用户在屏幕上不可见。我必须关闭应用程序并重新打开它,然后新添加的用户会在屏幕上可见。
我正在使用bloc
模式,以下是我显示用户列表的代码
以下是我的集团代码
正如雷米发布的回答说我应该尝试BehaviorSubject
并且ReplaySubject
我尝试过但它没有帮助。正如评论中指出的那样,我也打电话给 fetchUser();
里面insertUser()
以下是完整示例的链接
dart - 用于隐藏和取消隐藏小部件的 Bloc 模式
我正在尝试从互联网上获取一些数据并将其显示在一个列表中。
以下是我的bloc
代码
以下是我隐藏统一小部件的主要代码
该buildList
方法body
在Scaffold
假设用户在打开应用程序时有互联网,然后我能够看到circularprogressindicator
,然后数据列表可见,但假设在开始时打开应用程序并且用户没有互联网,然后我显示无网络可用文本和按钮重试,现在如果用户已连接到互联网,然后单击按钮重试,我会在几秒钟后直接看到数据列表,而不是circularprogressindicator
。我无法理解为什么NoInternetviews
没有隐藏并且progressindicator
正在显示在显示数据列表之前单击重试按钮。
我的流在调用重试按钮时没有得到更新。StreamBuilder
inside有什么警告StreamBuilder
吗?
我尝试更改StreamBuilder
@ivenxu 在答案中提到的顺序,但它仍然不起作用。以下是附加代码的链接
https://drive.google.com/file/d/15Z8jXw1OpwTB1CxDS8sHz8jKyHhLwJp7/view?usp=sharing
https://drive.google.com/open?id=1gIXV20S1o5jYRnno_NADabuIj4w163fF
dart - 错误“类型'未来' 不是 'StreamTransformer 类型的子类型, 列表>'"
- , 列表
我在我的 BLOC 中收到错误“类型‘Future’不是‘StreamTransformer,List>’类型的子类型”。
这是我的应用程序的结构:一个 BLOC(即,reports_bloc)。一个Repository(即repository)。一个 API Provider(即 api_provider)。
详细地说,API Provider 文件在线获取数据。Repository 文件准备好来自 API Provider 的数据(实际上,我也在使用 DB,这也是我选择使用 Repository 文件的原因)。BLOC 旨在从 Repository 获取数据并相应地将其添加到 Stream 和 Sink。我相信问题出在 BLOC 中(关于添加到 Stream 和“下沉”数据,我可能在这里弄错了)。
代码在这里:
预期的结果是能够从存储库添加数据并接收它。
dart - 如何过滤 rxdart 中的 obseravble 列表
我正在尝试在 rxdart 中实现 bloc 模式。我正在尝试构建 app 类型的 todo 应用程序。我实现了显示列表中的所有项目,但我想要的不是在不同部分显示已完成和未完成的项目。但是,我无法根据完成的 rxdart 过滤项目。
我想要的是获得完成的 shoppingItems 。ShoppingItem 类有一个布尔属性 completed 。我想在此基础上对其进行过滤。
任何帮助将不胜感激
dart - 强制堆栈重新创建自定义小部件
我有两个自定义小部件的堆栈,它们都是定位的:
- 简介卡
- ProfileCardDummy
ProfileCard:这个自定义的 Stateful Widget 是第一个堆栈的小部件,堆栈在顶部。这个小部件是 Dismissible 的。
ProfileCardDummy:这个自定义的无状态小部件是堆栈的背景小部件。
所以ProfileCard小部件是堆栈顶部的一个,其他背景堆栈是ProfileCardDummy
我的代码是这样的:
所有的魔法都发生在ProfileCard中,我使用 BloC 模式获取卡片的内容(主要是按钮)。
我在 ProfileCard 状态的构造函数上调度 bloc 事件。就像是:
问题是,当我运行代码时,第一个 ProfileCard 正确显示了它的按钮。现在,当我关闭它时,会显示第二个 ProfileCard,但带有第一个 ProfileCard(我关闭的那个)的按钮。
经过数小时的调试,我注意到ProfileCard ( _ProfileCardState() ) 的构造函数仅在第一张卡上被调用。其他卡片继承了第一类的按钮。
在 Stack 的文档中,它说:
我的 ProfileCard 将键作为参数(因为它扩展了 StatefulWidget),但我没有传递任何键。传递密钥会解决这个问题吗?如何传递唯一密钥?:P
是否有一种方法可以强制重新创建小部件以强制再次调用构造函数,从而正确获取按钮?
flutter - 如何使一个集团全球可访问
我正在努力将块模式放入我的 Flutter 应用程序中。我正在使用这个库让它对我来说更简单一点:https ://felangel.github.io/bloc/#/
我有一个主要问题。我怎样才能让我的 Bloc 可以在全球范围内访问,而不会一次又一次地传递下去?
这是我的代码:
主要飞镖:
备注页:
正如您所看到的,我在小部件代码中也有显示对话框代码,我很想将其导出,但到目前为止,如果显示对话框代码不在 Bloc 生成器中,则它无法访问 _dbNoteBloc。
谢谢你的每一个帮助。
PS:如果有人需要这里的 Bloc 代码,它是:
dart - 正在重新创建 Flutter BLoC
我正在发现 Flutter 和 bloc 模式,为了练习我正在制作一个关于比萨的应用程序。
我正在使用 aBlocProvider
来访问块。它来自generic_bloc_provider包。它是使用 aInheritedWidget
与 a 结合的基本实现StatelessWidget
。
我有一个包含两个可编辑文本字段的页面,用于显示我想要创建的披萨的名称和价格。它由一个集团支持。
这是代码:
AddPizzaPage.dart :
ListPage.dart:
添加PizzaBloc.dart:
我的问题是我将正在构建的 Pizza 存储在块内,但小部件被重建,因此块被重建并且我失去了状态。
完整代码可在gitlab上找到
我不知道如何使用 bloc 为 addPizza 表单提供动力。
dart - 购物车的 Bloc 柜台
我正在尝试使用 bloc 模式构建一个购物车,因为这是我在 Flutter 中的第一个应用程序以及使用 bloc。我的问题是,每次用户将产品添加到购物车时,我都试图获取 int 流。但似乎我使用的接收器和流错误,但我不知道确切的位置
项目计数器块
柜台
此外,我还有另一个用于将商品添加到购物车的集团。
dart - Stream 可以一次听一次还是一般听一次?
我有这个 StreamController:
StreamController<Workout> _selectedWorkoutSubject = new StreamController()
我在这样的 StreamBuilder 中听它:
当我离开当前页面并返回它时,我得到了例外:Bad state: Stream has already been listened to.
我知道我一次只能一次,但这不是我正在做的吗?当我离开页面时,StreamBuilder 应该收集垃圾,释放流,以便其他东西可以收听它。
或者一个 Stream 一般只能听一次(一次不是一次)?我知道我能做到
但我试图理解为什么它不像我最初那样工作。
flutter - Flutter Back 导航和 Bloc 数据
我有这个流程
发生的情况是从 screen1 转到详细 screen2(带有数据集 A),然后在此屏幕内有一个按钮,它将再次调用 screen2 和另一组数据(数据集 B)
所以当我想回去时,这里的数据仍然显示数据 B
我期望的是
这与 BloC BehaviorSubject 模式有关吗?我尝试了 PublishSubject,但结果也一样。