问题标签 [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.
flutter - 颤振没有更新肘部状态
我正在练习 BloC cubit,它没有更新状态。这是我的主要文件。我使用 BlocProvider 创建实例并使用 BlocBuilder 呈现状态,但是每当我单击增量和减量时,它都不会重新呈现文本小部件。
这是我的反肘文件
导入“包:bloc/bloc.dart”;导入“包:meta/meta.dart”;
这是我的计数器状态文件
flutter - 如何使用 Bloc/Cubit 更新 Flutter 中的列表?
我的 UI 由一个对象表Apples组成。
表格中的每个单元格:
- 如果该单元格不存在苹果,则有一个添加按钮
- 它显示苹果并有一个删除按钮,如果苹果存在
我的应用程序的主页正在调用以下小部件以从API加载苹果列表。并且ADD和DELETE函数也与相同的API进行通信以添加和删除苹果。
所以之后ApplesViewer就有了苹果列表,可以正确显示网格。
但是现在我有两个问题:
当我按下添加按钮或删除按钮时,所有应用程序都被重建,而我实际上可以重新绘制单元格。但我不知道如何避免这种情况,因为我还需要与应用程序沟通苹果列表实际上已更改。我不想重建整个 UI,因为它似乎效率低下,因为我的页面上实际更改的只是选定的单元格。
当我按下添加按钮或删除按钮时,我想显示一个替换按钮的圆形进度指示器(同时等待 API 实际创建/删除苹果)。但是当列表发生变化时,所有的应用程序都会被重建。所以,我不确定如何实现这种期望的行为。
你能帮我解决这两个问题吗?
或者建议我改变基础设施,以防我在处理这个问题时犯了一些错误?
如果需要,这是ApplesCubit的代码
flutter - 确保 GetIt 注册的 Cubit 的构造函数主体在交互之前执行的推荐方法
我想用 GetIt 注册一个 cubit 并确保它的构造函数主体在第一次与 cubit 交互之前执行。
我的肘部如下所示:
我在 GetIt 注册了一家工厂
并在类似的地方提供它:
现在,如果我从如下小部件中的 cubit 读取,构造函数会被调用,但currentBool
由于super(false)
.
如果我只是添加lazy: false,
到我的 BlocProvider 它并不能确保doSomethingAsync()
等待(例如doSomethingAsync()
可能需要很长时间。
我可以
this.initialCall();
从构造函数主体中删除并initialCall()
返回Future<void>
并将我从肘部读取的小部件包装在 FutureBuilder 中吗?还是我必须引入状态才能拥有
MyCubitLoading
状态?
flutter - 如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?
我的问题是,当我启动应用程序时,我的地图以一种方式出现,然后在从底部导航栏选项卡传递时,当我返回时,它会完全重新绘制。
我认为这是块和状态图的问题。
我需要知道解决方案是什么,这样它就不会被重绘,也就是说,如果我将地图留在一个位置并踏入选项卡,当我回来时,它会看起来我离开它的地方。
我的地图集团:
我的地图事件:
我的地图状态
flutter - Flutter BLoC/Cubit STATE 类最佳实践
我是使用 Bloc 和 Cubit 的新手,所以我试图找出一些专门针对 State 组件的最佳实践。我有一个简单的 Todos 应用程序,其中的 Todos 可以处于多种不同的状态:
我的问题是,我应该将其保留List<Todo> todos
在TodosLoaded
子类中还是应该将其移至基类?我的想法是,通过将其移至基类,它会使我的TodosEmpty
状态变得多余,因为我可以简单地检查 UI 中的待办事项列表是否为空。如果是这种情况,我是否也应该将其String error
移至基类?
我确信每种方法都有利有弊,只是希望能从任何对 Bloc 有更多经验的人那里获得灵感。
flutter - 了解 Cubit/Bloc 状态管理
我是 Flutter 的新手,我在使用 Redux 或 Vuex 等状态管理的 Web 应用程序方面有经验,其中模块的初始状态可能类似于:
然后基于 Reducers 或 Mutations,我们可以更新状态的单个或多个属性。
现在,学习 Flutter,我决定使用 Bloc/Cubit,但在网上我找不到我的问题的正确答案,即使大多数示例总是基于蹩脚的计数器应用程序,而不是更现实的场景。
我所看到的只是基于 Bloc 中的 4 个状态:初始、加载、成功和错误。
从 API 获取数据时这很好,但如果我的状态也有更多属性怎么办?
如何更新这些属性?
实际上,我创建了我的测试 Cubit 来从我的 API 中获取一些东西,它可以工作。现在我希望在状态上添加更多属性并根据操作对其进行更新,我该怎么做?
示例状态:
示例肘:
我可以成功处理各种初始、加载等状态。
greet
我可以在该物业正确观看:context.read<TestCubit>().greet
我现在应该如何更新该值'hello!'
?
我省略了所有更新该值的各种尝试。
谢谢
flutter - 如何在 Flutter 中为模块创建单独的路由?
我有两个页面:ConversationsListScreen(显示对话列表)和ConversationScreen(显示特定对话,用户从 ConversationsListScreen 进入)。
这两个页面应该被包装到一个单独的模块中,因为它们都需要相同的数据(我想通过公共 cubit 类提供)。这样我就创建了一个MessagesModule。
重定向到ConversationScreen后,它在与MessagesModule相同的级别打开,这意味着我的上下文不包含MessagesModuleCubit。但我希望看到ConversationScreen嵌套到MessagesModule,与ConversationsListScreen相同。这是我的小部件的当前结构
如何管理这两个页面的路由,以便可以使用 MessagesModuleCubit 中的公共状态?
flutter - 我如何使用 bloc 在颤动中切换主题?
我是 Flutter 和 bloc 的新手。我正在制作一个带有 bloc 状态管理的应用程序,它可以随着系统主题的变化而改变主题。现在它工作正常,但我需要可以覆盖主题的开关。我该如何实施?我正在通过观看 youtube 教程制作这个应用程序。无论如何要创建可以更改主题的开关。
主题肘
主题状态
这是 main.dart 的代码
flutter - 我如何转移集团供应商
我想将我的 bloc 提供商转移到其他页面,但我该怎么做?
我有一个登录页面。如果用户可以登录应用程序(使用电子邮件和密码),他会转到主页。程序报错,因为登录页面有signInCubit,但主页没有。我怎样才能转移这个集团建设者?我尝试了 blocprovider.value 但它不能。
它给出了这个错误:错误:在这个 BlocListener<SignInCubit, SignInState> 小部件上方找不到正确的提供者
我的登录页面:
我的主页:
flutter - Dart/flutter 小部件测试,无论是按键还是文本都找不到文本小部件
我在 ResoCoder 示例中使用 WeatherAPI 实现了一个应用程序。我现在想测试每个文本小部件是否显示正确的信息,但我已经找不到文本小部件(我使用了本指南https://resocoder.com/2021/01/02/flutter-integration-test-tutorial-firebase -test-lab-codemagic/)。我通过使用 find.byKey() (当然之前设置了一些键)和 find.byText() 进行了尝试,但没有一个起作用。
我的测试代码:
我总是收到没有找到那些小部件的错误:
还有我的屏幕小部件: