问题标签 [cubit]

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 回答
1129 浏览

flutter - 颤振没有更新肘部状态

我正在练习 BloC cubit,它没有更新状态。这是我的主要文件。我使用 BlocProvider 创建实例并使用 BlocBuilder 呈现状态,但是每当我单击增量和减量时,它都不会重新呈现文本小部件。

这是我的反肘文件

导入“包:bloc/bloc.dart”;导入“包:meta/meta.dart”;

这是我的计数器状态文件

0 投票
0 回答
792 浏览

flutter - 如何使用 Bloc/Cubit 更新 Flutter 中的列表?

我的 UI 由一个对象表Apples组成。
表格中的每个单元格:

  • 如果该单元格不存在苹果,则有一个添加按钮
  • 它显示苹果并有一个删除按钮,如果苹果存在

我的应用程序的主页正在调用以下小部件以从API加载苹果列表。并且ADDDELETE函数也与相同的API进行通信以添加和删除苹果。

所以之后ApplesViewer就有了苹果列表,可以正确显示网格。

但是现在我有两个问题:

  1. 当我按下添加按钮或删除按钮时,所有应用程序都被重建,而我实际上可以重新绘制单元格。但我不知道如何避免这种情况,因为我还需要与应用程序沟通苹果列表实际上已更改。我不想重建整个 UI,因为它似乎效率低下,因为我的页面上实际更改的只是选定的单元格。

  2. 当我按下添加按钮或删除按钮时,我想显示一个替换按钮的圆形进度指示器(同时等待 API 实际创建/删除苹果)。但是当列表发生变化时,所有的应用程序都会被重建。所以,我不确定如何实现这种期望的行为。

你能帮我解决这两个问题吗?
或者建议我改变基础设施,以防我在处理这个问题时犯了一些错误?

如果需要,这是ApplesCubit的代码

0 投票
0 回答
348 浏览

flutter - 确保 GetIt 注册的 Cubit 的构造函数主体在交互之前执行的推荐方法

我想用 GetIt 注册一个 cubit 并确保它的构造函数主体在第一次与 cubit 交互之前执行。

我的肘部如下所示:

我在 GetIt 注册了一家工厂

并在类似的地方提供它:


现在,如果我从如下小部件中的 cubit 读取,构造函数会被调用,但currentBool由于super(false).

如果我只是添加lazy: false,到我的 BlocProvider 它并不能确保doSomethingAsync()等待(例如doSomethingAsync()可能需要很长时间。


  • 我可以this.initialCall();从构造函数主体中删除并initialCall()返回Future<void>并将我从肘部读取的小部件包装在 FutureBuilder 中吗?

  • 还是我必须引入状态才能拥有MyCubitLoading状态?

0 投票
1 回答
324 浏览

flutter - 如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?

我的问题是,当我启动应用程序时,我的地图以一种方式出现,然后在从底部导航栏选项卡传递时,当我返回时,它会完全重新绘制。

我认为这是块和状态图的问题。

我需要知道解决方案是什么,这样它就不会被重绘,也就是说,如果我将地图留在一个位置并踏入选项卡,当我回来时,它会看起来我离开它的地方。

我的地图集团:

我的地图事件:

我的地图状态

0 投票
1 回答
1642 浏览

flutter - Flutter BLoC/Cubit STATE 类最佳实践

我是使用 Bloc 和 Cubit 的新手,所以我试图找出一些专门针对 State 组件的最佳实践。我有一个简单的 Todos 应用程序,其中的 Todos 可以处于多种不同的状态:

我的问题是,我应该将其保留List<Todo> todosTodosLoaded子类中还是应该将其移至基类?我的想法是,通过将其移至基类,它会使我的TodosEmpty状态变得多余,因为我可以简单地检查 UI 中的待办事项列表是否为空。如果是这种情况,我是否也应该将其String error移至基类?

我确信每种方法都有利有弊,只是希望能从任何对 Bloc 有更多经验的人那里获得灵感。

0 投票
0 回答
391 浏览

flutter - 了解 Cubit/Bloc 状态管理

我是 Flutter 的新手,我在使用 Redux 或 Vuex 等状态管理的 Web 应用程序方面有经验,其中模块的初始状态可能类似于:

然后基于 Reducers 或 Mutations,我们可以更新状态的单个或多个属性。

现在,学习 Flutter,我决定使用 Bloc/Cubit,但在网上我找不到我的问题的正确答案,即使大多数示例总是基于蹩脚的计数器应用程序,而不是更现实的场景。

我所看到的只是基于 Bloc 中的 4 个状态:初始、加载、成功和错误。

从 API 获取数据时这很好,但如果我的状态也有更多属性怎么办?

如何更新这些属性?

实际上,我创建了我的测试 Cubit 来从我的 API 中获取一些东西,它可以工作。现在我希望在状态上添加更多属性并根据操作对其进行更新,我该怎么做?

示例状态:

示例肘:

我可以成功处理各种初始、加载等状态。

greet我可以在该物业正确观看:context.read<TestCubit>().greet

我现在应该如何更新该值'hello!'

我省略了所有更新该值的各种尝试。

谢谢

0 投票
1 回答
73 浏览

flutter - 如何在 Flutter 中为模块创建单独的路由?

我有两个页面:ConversationsListScreen(显示对话列表)和ConversationScreen(显示特定对话,用户从 ConversationsListScreen 进入)。

这两个页面应该被包装到一个单独的模块中,因为它们都需要相同的数据(我想通过公共 cubit 类提供)。这样我就创建了一个MessagesModule

重定向到ConversationScreen后,它在与MessagesModule相同的级别打开,这意味着我的上下文不包含MessagesModuleCubit。但我希望看到ConversationScreen嵌套到MessagesModule,与ConversationsListScreen相同。这是我的小部件的当前结构

如何管理这两个页面的路由,以便可以使用 MessagesModuleCubit 中的公共状态?

0 投票
1 回答
1441 浏览

flutter - 我如何使用 bloc 在颤动中切换主题?

我是 Flutter 和 bloc 的新手。我正在制作一个带有 bloc 状态管理的应用程序,它可以随着系统主题的变化而改变主题。现在它工作正常,但我需要可以覆盖主题的开关。我该如何实施?我正在通过观看 youtube 教程制作这个应用程序。无论如何要创建可以更改主题的开关。

主题肘

主题状态

这是 main.dart 的代码

0 投票
1 回答
55 浏览

flutter - 我如何转移集团供应商

我想将我的 bloc 提供商转移到其他页面,但我该怎么做?

我有一个登录页面。如果用户可以登录应用程序(使用电子邮件和密码),他会转到主页。程序报错,因为登录页面有signInCubit,但主页没有。我怎样才能转移这个集团建设者?我尝试了 blocprovider.value 但它不能。

它给出了这个错误:错误:在这个 BlocListener<SignInCubit, SignInState> 小部件上方找不到正确的提供者

我的登录页面:

我的主页:

0 投票
1 回答
826 浏览

flutter - Dart/flutter 小部件测试,无论是按键还是文本都找不到文本小部件

我在 ResoCoder 示例中使用 Wea​​therAPI 实现了一个应用程序。我现在想测试每个文本小部件是否显示正确的信息,但我已经找不到文本小部件(我使用了本指南https://resocoder.com/2021/01/02/flutter-integration-test-tutorial-firebase -test-lab-codemagic/)。我通过使用 find.byKey() (当然之前设置了一些键)和 find.byText() 进行了尝试,但没有一个起作用。

我的测试代码:

我总是收到没有找到那些小部件的错误:

还有我的屏幕小部件: