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

flutter-bloc - 状态相同但状态内容不同时如何使用flutter_bloc改变UI

我正在使用来自 flutter_bloc 包的 BlocBuilder 来响应状态变化。

问题:多个连续事件产生连续的 BreathalyzerWarmingUp 状态,但连续具有不同的 countDown 值(例如,3、2、1)。但是,由于没有实际转换到不同的状态,因此 BlocBuilder 将忽略后续状态,并且 UI 仅显示第一个倒计时值。

预计屏幕会发生如下变化:

刚刚得到:

有什么建议么?

0 投票
0 回答
67 浏览

flutter - FlutterBloc:BlocListener 不消耗发射状态

给我带来麻烦的集团是 AuthBloc。以下是它的初始化方式:

这是我需要对状态采取行动的地方,但在某些情况下,不会调用 bloc 的侦听器:

我知道该集团正在接收事件,但是当我让出状态时,该集团不会重建。关于我要去哪里错的任何想法?

谢谢!

0 投票
1 回答
1610 浏览

flutter - 在 Flutter bloc 模式中状态不屈服

我正在使用flutter_bloc包在flutter bloc模式中构建一个测试应用程序。问题是仅呈现 Event1 的状态,但代码在 mapEventToState 中执行。我认为问题在于 yield 语句,因为在触发 Event2 时,mapEventToState 执行中的相应打印语句。

page_bloc.dart 中的mapEventTOState函数

page_state.dart如下

page_event.dart如下所示

BlocBuilder如下:

Scaffold中的浮动动作按钮如下:

脚手架中的另一个小部件如下:

0 投票
1 回答
738 浏览

flutter - 来自自己的流的每个项目的颤振块产量

希望你们都做得很好,#stayhome 并保持#socialdistancing :)

我确实对flutter_bloc库有一个小问题,我希望有人可以帮助我。

我有一个 API-Call ( moviesStream),它返回一个流。我想要的是:在yield该流中的每一个上做一个yield我的bloc,因此重建我的每个项目的小部件,而不是最后为所有items。我想items一个接一个地建造

这是我的方法,我不明白为什么它不起作用。我非常愿意接受任何其他方法来实现我的目标

到目前为止我学到的东西:我不能产生相同的状态,但我的新旧状态不同,所以这不应该是一个问题(我认为)。屈服后我是否需要调度/添加一个新事件(或同样的事件)?我知道这也许可以解决我的问题,但这会从头开始重新开始我的直播,不是吗?

输出如下

我期待或者更确切地说我希望有以下输出

0 投票
0 回答
58 浏览

android - 使用 flutter_bloc 包提供 bloc 的最佳方法是什么

我正在使用flutter_bloc包来创建一个应用程序来从 API 获取数据,我的块太多了,我从一开始就将它们提供给整个应用程序,甚至在创建这样的材料应用程序之前:

我的提供者有很多(大约 20 个),我认为并非所有这些都应该提供给整个应用程序

那么,以最佳性能体验为应用程序提供块的最佳方式是什么?

0 投票
2 回答
3359 浏览

flutter - flutter_map move camera with map controller through BLoC

I'm building a flutter app using BLoC pattern and flutter_map package. I'd like to move camera to particular position. I'm trying to pass map controller to my bloc structure and move camera from there but im getting an error:
NoSuchMethodError: The getter 'onReady' was called on null.
I'm not sure if this is the right approach.

map_bloc.dart

Widget with map

I have no idea why the map controller has a problem with onReady method.

0 投票
1 回答
398 浏览

flutter - 对flutter_bloc的全局依赖

我在使用Flutter_bloc在 Flutter 上实现应用程序时遇到问题。我理解了核心概念,但我发现了一个没有示例或指南的“边缘案例”(至少我能找到):

(我将简化问题)我有一个名为的集团AuthBloc来管理App. 如果状态是NotAuthenticated,则应用程序应显示 ,LoginScreen但如果是Authenticated,则应用程序应显示HomeScreen. 在里面HomeScreen我有 4 个块,每个块都有它的状态和事件,但是它们都依赖于不同Repositories的从 API 获取一些数据。

所有这些都Repositories需要一个令牌来发出 API 请求。第一个问题来了。如何从所有存储库中获取令牌?如果我使用 aUserRepository来存储令牌,我需要将它作为依赖项传递给每个存储库(可能有效,但我认为它不是正确的方法)。那么,管理这个问题的正确方法是什么?

第二个问题是:

如果我能以某种方式在所有存储库查询中获得令牌,那么当令牌被撤销时会发生什么?该应用程序应该返回到LoginScreen并且为此我需要AuthBloc通过事件通知 (例如InvalidTokenEvent)。并且AuthBloc应该将其状态更改为NotAuthenticated并且将重建LoginScreen. 但问题是:我如何AuthBloc从其他集团或存储库通知?我的第一个想法是通过依赖注入:我可以将 AuthBloc 传递给构造函数中的每个其他块,因此当存储库请求返回令牌过期时,XBloc可以调用AuthBloc.add(InvalidTokenEvent). 但同样,如果我有很多集团,我需要在每个集团中都这样做。那么,这样做的正确方法是什么?

感谢您的任何帮助!

0 投票
1 回答
1978 浏览

flutter - Flutter - 使用 MultiBlocProvider 但无法在子屏幕上呈现 BlocListener

我将描述我的问题和我遇到的错误。然后我将复制我的代码以使其更清晰。问题为:

  • 我在根小部件(StartupScreen)上使用 MultiBlocProvider,声明的 2 个块是 AuthenticationBloc、ApplicationBloc。
  • BlocListener<AuthenticationBloc, AuthenticationState>在根小部件 (StartupScreen) 处使用。
  • 如果 AuthenticationBloc 的状态更改为 AuthAuthenticatedState,则路由到 MainScreen,否则路由到 LoginScreen。
  • 如果用户已登录,则路由到 MainScreen:
    1. 我将从存储中(异步)获取 currentUser,然后将 BlocListener 包装在 FutureBuilder 中。它最终无法显示屏幕并出现以下错误:


StartupScreen.dart


主屏幕.dart

0 投票
1 回答
305 浏览

flutter - bloc state is the same after coming back to a page even though it was explicitly changed

I have a widget that utilizes CourseBloc

I use BlocBuilder and BlocListener in the widget page as follows:

At some point I am navigating away of this widget. Then I want to come back to this first (Course) widget. I do:

This tells the CourseBloc to expect a CoursesReturnedFromTasksEvent() , resets the new TaskBloc (because I am not on this page anymore and I don't need to know what state is it at) and pops the current context.

Then I am navigated back. The CourseBloc's mapping method works with the new state and according to the 'if' it yields:

But the Builder in the Course page is at the previous state. CourseFetchedState. And it has not 'taken' the new state (Initial).

Any ideas why that might happen?

Here are the States:

And Events:

EDIT Here is how the Bloc is provided:

The serviceLocator() is instantiated only once, at app startup. It registers all instances needed throughout the app life in order to achieve dependency injection. Here is the CourseBloc registration:

0 投票
1 回答
165 浏览

flutter - 异步完成后 Flutter bloc 更新对象状态

我正在使用颤振和集团模式。Todo 教程 ( https://bloclibrary.dev/#/fluttertodostutorial?id=bloc ) 很好地解释了这个集团。

但是不,我想使用有关“对象同步已完成/正在运行”的信息来扩展示例应用程序。我附上了一张我对它应该如何工作的想法的图片。

流动

我认为下面的函数正在做类似的事情——改变完整的布尔值。但是如何在异步调用后更改函数以更改 1 obj 的布尔值并将其直接触发到 UI。在 obj 1 之后转到 obj 2,依此类推。

我希望你能理解我的解释并能帮助我:-)