问题标签 [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.

0 投票
1 回答
4445 浏览

dart - flutter - bloc - 我如何在我的 Ui 中使用 FutureBuilder 来正确实现 Bloc 架构

我是颤振和 Bloc 架构的新手,我正在尝试将 Bloc 用于我的登录功能。我正在尝试调用 Bloc 文件中的函数,但我不知道该怎么做。如果您能帮我看看我在使用 Bloc 时是否还有其他问题,我也会很高兴。这是我的 Ui 的代码:

这是我的集团课程:

这是我的 API 类:

这是我的回购类:

0 投票
1 回答
928 浏览

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。

0 投票
3 回答
563 浏览

flutter - Flutter BLoC 架构列表和详细信息屏幕

关于 Bloc 和 Flutter 的架构问题。
我有一个列表屏幕,其中填充了StreamBuilder.
在项目点击时,它会打开一个详细信息屏幕,用户可以在其中编辑该项目的值。
必须将该更改传播到 List Screen Bloc,以便在关闭 Detail Screen 时,更改已反映在列表中。

我正在考虑共享同一个集团,但认为可能有更好的方法。

有任何想法吗?谢谢。

0 投票
1 回答
426 浏览

dart - 通过 Bloc 模式管理多个小部件的状态

在我的主页上,我有 3 个按钮:播放视频播放音频录制语音。所有这些按钮小部件都使用Bloc模式来控制其内部状态(例如,在播放文件时更改按钮图标)但我无法理解如何在我的主页上访问它们的状态,因为我想在其中一个按钮时禁用其他按钮被按下。

关于如何做到这一点的任何建议?

0 投票
2 回答
6998 浏览

flutter - Flutter Bloc:更新后未调用 BlocBuilder,ListView 仍显示旧数据

我正在使用 flutter_bloc 进行状态管理并解决了这个问题。更新和保存字段时,BlocBuilder 不会刷新页面。添加或删除时它工作正常。我不确定我在这里做错了什么。

即使我转到另一个屏幕并返回此屏幕,即使文件已更新,它仍会显示旧数据。

我花了2个多小时试图调试这个无济于事。我尝试初始化updatedTodos = []然后逐个添加每个待办事项,看看是否有什么作用,但这也不起作用。

这里的任何帮助将不胜感激。

TodosBloc.dart:

todos_screen.dart:

我期待 BlocBuilder 何时被调用并刷新 ListView。

0 投票
7 回答
35067 浏览

dart - 颤振:未处理的异常:错误状态:调用关闭后无法添加新事件

我正在尝试使用 bloc 模式来管理来自 API 的数据并将它们显示在我的小部件中。我能够从 API 获取数据并对其进行处理和显示,但我使用的是底部导航栏,当我更改选项卡并转到上一个选项卡时,它返回此错误:

未处理的异常:错误状态:调用关闭后无法添加新事件。

我知道这是因为我正在关闭流然后尝试添加到它,但我不知道如何修复它,因为不处理publishsubject将导致memory leak. 这是我的用户界面代码:

这是我的集团代码:

我没有包含 repo 和 API 代码,因为它不在此错误的主题中。

0 投票
4 回答
1457 浏览

dart - 如何重建颤振中的所有网格项目?

我有一个由网格表示的仪表板,它应该在长按事件时删除项目(使用flutter_bloc),但它会删除最后一个项目而不是选中的项目。所有调试打印都显示,需要的元素实际上已从列表中删除,但视图层仍保留它。

我的构建功能代码:

完整的类代码仪表板块

看起来网格会自行重建,但不要重建其瓷砖。如何完全更新网格小部件及其所有子小部件?

ps我花了两天时间修复它,请帮助

0 投票
1 回答
2754 浏览

pagination - 如何在颤动块模式中实现分页

我正在尝试使用 bloc 模式实现分页。我想要的是当 list_view 到达末尾时,它会用新内容更新当前 list_view 但它正在做的是用新内容创建一个新的 list_view

Built_valueModel.dart

块飞镖

Main_UI.dart

当 list_view 到达终点而不是更新当前 list_view 时,它正在创建一个新的 list_view ,这很明显,因为我正在创建一个具有不同参数的新块。

0 投票
0 回答
751 浏览

dart - Bloc 无法在对话框中返回数据

我正在使用带有 BloC 模式的颤振开发一个简单的待办事项应用程序。

它有一个显示 TodoDetails 的 ui。

当用户单击一个按钮时,它会显示一个新的 SimpleDialog。

我想在 SimpleDialog 中显示一些标签列表,例如:

所以我的集团正在获取 TagList,例如:

当我检查日志时,块逻辑返回正确的标签列表。

但是当我显示对话框时,它没有标签列表。该列表为空。

0 投票
1 回答
2865 浏览

flutter - 跨不同路线共享集团

我试图在两条路线上共享同一个集团。但是当我从第二条路线回来时,集团会自动处理,所以在第一条路线中,我发现自己所有的流都关闭了。

例如,这是我实例化块的第一条路线(主页),从 api 下载列表并在构建方法中显示它。

然后我导航到第二个屏幕,我可以在其中将项目添加到列表中。

在第二个屏幕中,我检索 bloc 并使用它添加项目,然后返回主页。

在第二个屏幕的 dispose 方法中,我只处理了 _formBloc bloc 但 _groupBloc 也被处理了,所以当我回到第一页时,我发现自己处理了 _groupBloc 并且它的所有流都关闭了。

我很难将集团作为道具传递到第二个屏幕,但我不知道这是否是正确的方法。