问题标签 [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 投票
2 回答
567 浏览

flutter - 无法在 Flutter 中的 PageController 上跳转到页面

我已经构建了一个脚手架屏幕,正文中有一个 PageView 和一个底部导航栏。

我还为此页面构建了 Cubit + State 管理器。

当屏幕第一次打开时,我希望触发 API 调用。我还希望选择选项卡 1(在 PageView 和 bottomNavigationBar 上)。当 API 返回响应时,我希望事件侦听器更新屏幕并选择选项卡 0。

这适用于 bottomNavigationBar,但我在更新 PageView 时遇到问题。这是我的代码:

当我尝试在 BlocConsumer 的侦听器中更改页面时遇到的错误:

[错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:'package:flutter/src/widgets/scroll_controller.dart':断言失败:第 112 行 pos 12:'_positions.isNotEmpty':未附加 ScrollController到任何滚动视图。

0 投票
1 回答
764 浏览

flutter - Flutter cubit blocprovider 找不到正确的提供者

我正在构建一个颤振应用程序,用户可以在其中使用谷歌帐户登录。我想用肘来管理这个。我使用 Blocprovider 在小部件树中提供肘部。块提供者位于 runApp 函数中的 futurebuilder 中。这是我的代码:

main.dart:

SignInPage 小部件:

GoogleButton 小部件:

当我运行它时,它会引发以下错误: 错误图片

我尝试按照它的建议进行操作,并将 BlocProvider 与 Provider 交换,所以我的代码如下所示:

但后来我得到参数类型“SignInPage Function(BuildContext)”不能分配给参数类型“Widget Function(BuildContext, Widget)”错误。

0 投票
2 回答
1536 浏览

flutter - Flutter BLoC 库:将 TextEditingController 对象保存在哪里:在 State、BLoC / Cubit 类或小部件中?

在使用 BLoC 库时,我们将所有变量存储在一个状态类中。但是TextEditingController存放在哪里,它不会改变,但它的值会改变吗?

假设我有一个这样的状态类(仅作为示例):

和 Cubit 类:

所以 Cubit 类的逻辑看起来很乱。我建议将此类控制器直接保存在小部件或 BLoC/Cubit 类中。这是一个正确的方法吗?

0 投票
1 回答
73 浏览

flutter - 为 cbuit 放置 blocprovider

新的扑和肘......所以......

我的测试应用程序显示+ 0 - 小部件,我可以让肘部增加和减少这可以。

但我尝试将此肘代码放在我的真实应用程序中。它正在从 json 文件构建百吉饼名称的列表视图。我试图将计数器小部件放入我的应用程序中。它从包含 15 个百吉饼名称的 json 字段构建列表视图

问题是我不确定在哪里插入供应商代码。我似乎没有尝试工作在此处输入图像描述

进入工作应用程序。

main.dart counter_cubit_page.dart

0 投票
0 回答
159 浏览

flutter - 颤振列表视图卡增量与块

我终于制作了我的百吉饼订单测试应用程序。我可以从 json 文件加载百吉饼。建立一个列表并在屏幕上显示。我已经加了肘来管理百吉饼的总状态所有这些都很好。

但是我是新手,当我开始工作时,我会遇到下一个问题。

当我为普通百吉饼选择 + 以从 0 增加到 1 时。首先查看附加的像素是应用程序的开始。所有百吉饼计数都设置为零,按 + 3 次后,它们都更新为 3 。所有计数字段都会更新。我现在知道它们都具有在cubit中使用的相同字段名称。

我正在寻找有关如何解决此问题的建议。

  1. 老派我为百吉饼总数的列表视图中的每个生成项目分配一个唯一的名称。但是我将如何使用cubit来管理状态?
  2. 我开始阅读有关可能使用 Keys 的信息,但在我看来它们不是答案。
  3. 我知道列表中的每个项目都有一个唯一的索引。正如我在应用程序上显示的那样进行测试。

我增加了普通百吉饼,所有百吉饼都更新了。那么解决这个问题的正确方法是什么?

感谢新来的颤振/飞镖,所以让我的脚湿了......

增量显示全部从零到 3 [1]:https ://i.stack.imgur.com/7N6Gp.png

0 投票
0 回答
94 浏览

flutter - flutter listview skroll重置文本小部件中的计数器

我有这个测试应用程序部分工作。它会更新百吉饼计数器,但会更新屏幕上的所有百吉饼计数器。我将 cubit build.provider 移动到仅在屏幕上显示每个项目计数的文本字段。

这修复了我对所有百吉饼计数的全局更新。所以现在每个人都有自己的计数器。但是现在当我滚动屏幕时,计数都被重置了。我将 + 0 1 计数器作为一个类放入列表视图中。

我试过添加键和 addAutomaticKeepAlives: true 但没有运气。修复删除+之间计数器0的滚动 - 被重置..

主要.dart

我试过 addAutomaticKeepAlives: true not working 并尝试在字段上使用唯一键......

欢迎任何指点。我是颤振编码的新手..还有很多东西要学..

在此处输入图像描述

0 投票
1 回答
42 浏览

flutter - 卡在肘上,将状态更改为 2 个小部件

我的基本代码为 cubit 工作,以更新我的应用程序列表视图中连续的类中的简单计数器。

我想使用bottomNavigationBar 和totalbagel 字段更新总项目的计数器,该字段与我的cubit 在不同的类中。我将导航栏文本字段 totalbabgel 包裹在一个块中,见下文。

我的问题是我不知道如何调用底部导航栏变量中的 cubit 字段。

从我的 cubit 类中引用状态变量的正确格式是什么?所有在线示例仅显示同一类文本更新中的肘状态。我需要在 2 个小部件中更新状态。

文本

0 投票
1 回答
1144 浏览

flutter - 如何将一个 Widget 中修改的 Cubit 状态显示到另一个 Widget 中?

我使用 BLoC 模式开发了一个购物车,但我在尝试学习子集 Cubit 时遇到了困难。我的主要问题是如何显示以前更新的 Cubit 的状态?我的流量是下一个...

  1. 在产品屏幕上,我增加/减少我想要使用的项目。
  2. 要推动更改状态,我单击一个按钮并将项目作为参数发送到 Cubit 函数。
  3. 项目列表已更新,我想将其放入产品屏幕之外的另一个小部件中。

这是代码:

主要.dart

product_screen.dart

cart_cubit.dart

我应该在购物车屏幕上添加什么以便获得 Cubit State 的值?另外,这应该通过使用块而不是肘更好地处理吗?

编辑:根据 Loren.AI 的评论删除了我 ProductScreen 的 BlocBuilder 并将其添加到我的 CartScreen 中。

0 投票
1 回答
231 浏览

flutter - Flutter Bloc Cubit Navigator Problem BlocProvider.of() 调用的上下文不包含 CityCubit 类型的 Bloc/Cubit

我在 Flutter 项目中使用 Bloc (Cubit) 进行数据管理。我在导航操作中收到以下错误。

BlocProvider.of() 使用不包含 CityCubit 类型的 Bloc/Cubit 的上下文调用。从传递给 BlocProvider.of() 的上下文中找不到祖先。

当我从登录表单转到我的城市列表页面时,出现上述错误。当我刷新项目时,错误消失了。列出了城市。但是,当我再次登录并重定向我时,我收到一个错误。

main.dart --> MultiBlocProvider[providers: BlocProvider, BlocProvider]

借助按钮“BlocProvider.of (context) .signIn (user);” 在登录。

自动页面

城市列表页

0 投票
1 回答
615 浏览

flutter - 如何取消 Cubit 内的 StreamSubscription?

我有一个监听消息流的肘部,并发出一个保存消息的状态。在屏幕中,我使用 BlocProvider 来访问 cubit,并使用 BlocBuilder 来显示消息。

在以下情况下,我是否需要关闭在 listen() 上创建的 StreamSubscription?有干净的方法吗?