问题标签 [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 - flutter - bloc - 我如何在我的 Ui 中使用 FutureBuilder 来正确实现 Bloc 架构
我是颤振和 Bloc 架构的新手,我正在尝试将 Bloc 用于我的登录功能。我正在尝试调用 Bloc 文件中的函数,但我不知道该怎么做。如果您能帮我看看我在使用 Bloc 时是否还有其他问题,我也会很高兴。这是我的 Ui 的代码:
这是我的集团课程:
这是我的 API 类:
这是我的回购类:
forms - 具有 bloc 模式的 TextFormField 是 Subbmiting null
使用 TextFormField 时,我无法添加或更新数据,提交到数据库的数据始终为 null 或者我收到 NoSuchMethodErrorerror
I/flutter ( 6511): Another exception was thrown: NoSuchMethodError: The getter 'value' was called on null
我已经建立了这样的集团:
像这样的用户界面:
和这样的提交。如果我将提交更改为无参数或它用空填充数据库的参数,则提交的数据会捕获错误 NoSuchMethodFound。
这也是我的模型
我也在使用来自颤振的提供者包,所以我认为提供者是正确的:
使用 textFields 工作正常,但我需要在编辑之前查看填充了一些初始数据的表单,所以显然我需要 TextFormFields。
flutter - Flutter BLoC 架构列表和详细信息屏幕
关于 Bloc 和 Flutter 的架构问题。
我有一个列表屏幕,其中填充了StreamBuilder
.
在项目点击时,它会打开一个详细信息屏幕,用户可以在其中编辑该项目的值。
必须将该更改传播到 List Screen Bloc,以便在关闭 Detail Screen 时,更改已反映在列表中。
我正在考虑共享同一个集团,但认为可能有更好的方法。
有任何想法吗?谢谢。
dart - 通过 Bloc 模式管理多个小部件的状态
在我的主页上,我有 3 个按钮:播放视频、播放音频、录制语音。所有这些按钮小部件都使用Bloc
模式来控制其内部状态(例如,在播放文件时更改按钮图标)但我无法理解如何在我的主页上访问它们的状态,因为我想在其中一个按钮时禁用其他按钮被按下。
关于如何做到这一点的任何建议?
flutter - Flutter Bloc:更新后未调用 BlocBuilder,ListView 仍显示旧数据
我正在使用 flutter_bloc 进行状态管理并解决了这个问题。更新和保存字段时,BlocBuilder 不会刷新页面。添加或删除时它工作正常。我不确定我在这里做错了什么。
即使我转到另一个屏幕并返回此屏幕,即使文件已更新,它仍会显示旧数据。
我花了2个多小时试图调试这个无济于事。我尝试初始化updatedTodos = []
然后逐个添加每个待办事项,看看是否有什么作用,但这也不起作用。
这里的任何帮助将不胜感激。
TodosBloc.dart:
todos_screen.dart:
我期待 BlocBuilder 何时被调用并刷新 ListView。
dart - 颤振:未处理的异常:错误状态:调用关闭后无法添加新事件
我正在尝试使用 bloc 模式来管理来自 API 的数据并将它们显示在我的小部件中。我能够从 API 获取数据并对其进行处理和显示,但我使用的是底部导航栏,当我更改选项卡并转到上一个选项卡时,它返回此错误:
未处理的异常:错误状态:调用关闭后无法添加新事件。
我知道这是因为我正在关闭流然后尝试添加到它,但我不知道如何修复它,因为不处理publishsubject
将导致memory leak
. 这是我的用户界面代码:
这是我的集团代码:
我没有包含 repo 和 API 代码,因为它不在此错误的主题中。
dart - 如何重建颤振中的所有网格项目?
我有一个由网格表示的仪表板,它应该在长按事件时删除项目(使用flutter_bloc),但它会删除最后一个项目而不是选中的项目。所有调试打印都显示,需要的元素实际上已从列表中删除,但视图层仍保留它。
我的构建功能代码:
看起来网格会自行重建,但不要重建其瓷砖。如何完全更新网格小部件及其所有子小部件?
ps我花了两天时间修复它,请帮助
pagination - 如何在颤动块模式中实现分页
我正在尝试使用 bloc 模式实现分页。我想要的是当 list_view 到达末尾时,它会用新内容更新当前 list_view 但它正在做的是用新内容创建一个新的 list_view
Built_valueModel.dart
块飞镖
Main_UI.dart
当 list_view 到达终点而不是更新当前 list_view 时,它正在创建一个新的 list_view ,这很明显,因为我正在创建一个具有不同参数的新块。
dart - Bloc 无法在对话框中返回数据
我正在使用带有 BloC 模式的颤振开发一个简单的待办事项应用程序。
它有一个显示 TodoDetails 的 ui。
当用户单击一个按钮时,它会显示一个新的 SimpleDialog。
我想在 SimpleDialog 中显示一些标签列表,例如:
所以我的集团正在获取 TagList,例如:
当我检查日志时,块逻辑返回正确的标签列表。
但是当我显示对话框时,它没有标签列表。该列表为空。
flutter - 跨不同路线共享集团
我试图在两条路线上共享同一个集团。但是当我从第二条路线回来时,集团会自动处理,所以在第一条路线中,我发现自己所有的流都关闭了。
例如,这是我实例化块的第一条路线(主页),从 api 下载列表并在构建方法中显示它。
然后我导航到第二个屏幕,我可以在其中将项目添加到列表中。
在第二个屏幕中,我检索 bloc 并使用它添加项目,然后返回主页。
在第二个屏幕的 dispose 方法中,我只处理了 _formBloc bloc 但 _groupBloc 也被处理了,所以当我回到第一页时,我发现自己处理了 _groupBloc 并且它的所有流都关闭了。
我很难将集团作为道具传递到第二个屏幕,但我不知道这是否是正确的方法。