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

flutter - 构建函数返回 null,有问题的小部件是:BlocBuilder在 flutter_bloc 包中

我是flutter以及flutter_bloc的初学者,我试图在blocbuilder中获取小部件但得到“构建函数返回null。有问题的小部件是:BlocBuilder。构建函数绝不能返回null。” 下面是块代码以及来自控制台的空错误。

来自控制台日志的错误

0 投票
0 回答
614 浏览

flutter - 在构建期间调用的提供程序和flutter_bloc setState() 或markNeedsBuild()

我在我的应用程序中使用 provider 和 flutter_bluc。现在我正在努力解决这个问题:一个新状态被传递给 BlocBuilder,它重建了 Widget Tree UI 的一部分。我还想要更新我的bottomNavigationVisibility,它扩展了ChangeNotifier。我使用这个bottomNavigationVisibility 来更新小部件树的另一部分。

这样我就可以轻松地为我的 UIViews 恕我直言实现良好的分离逻辑。但是,现在我总是收到此错误:

在构建期间调用 setState() 或 markNeedsBuild()。

以下是代码示例:

​​​

在返回特定的块状态后,我应该如何更改我的代码以从小部件 A 更新我的 ChangeNotifier,这在小部件 B 中观察到?

另外,我可能是错的,并且将 Provider 用于带有 flutter_bloc 的单独 UI 部分是一个糟糕的组合吗?

0 投票
6 回答
39535 浏览

flutter - BlocProvider.of() 使用不包含 Bloc 的上下文调用 - 即使它包含

首先,我确实知道 BLoC 应该如何工作,它背后的想法,我知道构造函数BlocProvider()BlocProvider.value()构造函数之间的区别。

为简单起见,我的应用程序有 3 个页面,其中的小部件树如下所示:

App()=> LoginPage()=> HomePage()=>UserTokensPage()

我希望我LoginPage()能够访问,UserBloc因为我需要登录用户等。为此,我将LoginPage()构建器包装在App()小部件上,如下所示:

这显然工作得很好。然后,如果用户成功登录,他将被导航到HomePage。现在,我需要访问我的两个不同的块,HomePage所以我用来进一步MultiBlocProvider传递现有的UserBloc并创建一个名为DataBloc. 我这样做:

这也有效。当从HomePage 用户导航到UserTokensPage. 在UserTokensPage我需要我已经存在UserBloc的我想通过BlocProvider.value()构造函数传递。我这样做:

当我按下按钮导航到MyTokensPage我收到错误消息:

我究竟做错了什么?是因为我提取PopupMenuButton了以某种方式丢失块的小部件吗?我不明白我做错了什么。

0 投票
1 回答
1449 浏览

flutter - 在颤振中从 Navigator.pushNamed 访问 bloc

我有一个routing这样的:

如何将 bloc 传递给OthePage小部件?

0 投票
1 回答
361 浏览

firebase - Flutter Bloc 与 firebase 查询有多种关系

所以我有一个 firebase 查询,其中:
user文档 - 具有Spots
posts集合的 id 数组 - 有多个post文档,每个帖子都有单个“spotId”
spots集合 - 有多个spot文档,具有唯一 id obvs

现在要仅向用户显示该用户关注的 Spot 帖子,我必须:
迭代用户“spots 数组”(他关注的点)。然后对于spot id这个数组中的每一个,我都必须对posts“spotId”==这个id的集合进行一次firebase查询。因此,当我只有那些与 Spot 用户连接的帖子时,我必须对spots集合进行另一个 firebase 查询,以获取用于帖子显示的特定 Spot 数据。

该方法如下所示:

然后我像这样使用它:

问题是:这有意义吗?因为看起来像一个小黑客。通常我希望这个posts方法有一个流,但这里有一件事:当我监听这个post方法 Steam 时,Firebase 将为eventid 数组中的每个 ID 返回新的。因此,如果数组将为 ["1", "2"],Future.wait(posts).then((waitedPosts)则将返回 "1" 的帖子,然后返回 "2" 的帖子。

这就是为什么我做了这个奇怪的 hack - 我开始使用 flutter_bloc,所以不知道这是 hack 还是可接受的解决方案?

任何人都可以提供意见吗?

0 投票
0 回答
578 浏览

flutter - NoSuchMethodError:在 null 上调用了 getter 'bloc'

我是 Flutter 和 BLOC 的初学者,在尝试获取国家/地区列表数据时遇到问题。

错误是NoSuchMethodError:在 null 上调用了 getter 'bloc'。

在此处输入图像描述

下面是我的代码。我只是按照本教程https://www.youtube.com/watch?v=2DP3SEHucEk

这是国家列表小部件

这是国家供应商

和这个国家集团

0 投票
3 回答
122 浏览

flutter - Flutter,在一个块中使用一个块

我有两个 BLoC。

  • 地产集团
  • 地产尝试集团

我的应用程序基本上从 API 获取资产并以类似的方式显示它们

现在我想添加一个排序功能,但我只能通过特定状态访问庄园列表。

我想为需要该清单的任何集团提供遗产清单。

我所做的是,我创建了 EstateTryBloc,它基本上包含了作为状态的庄园列表。

当我在集团内部打印状态时,我得到了庄园列表,但我不知道如何在不同的集团中使用该列表。

仅显示初始状态。

我对各种答案持开放态度,请随时告诉我不同​​的方法是否会更好。

0 投票
2 回答
3416 浏览

flutter - 使用不包含 Bloc 类型的 Bloc 的上下文调用 BlocProvider.of()

错误:I/flutter(5919):══╡ 小部件库发现异常╞═════════════════════════␕════════════ ═══════════════════════════ I/flutter(5919):在构建构建器时抛出了以下断言:I/flutter(5919):BlocProvider .of() 使用不包含 Bloc 类型的 Bloc 的上下文调用。I/flutter (5919):从传递给 I/flutter (5919) 的上下文开始找不到祖先:BlocProvider.of>()。我/颤振(5919):
如果您使用的上下文来自 BlocProvider 上方的小部件,则可能会发生这种情况。I/flutter (5919): 使用的上下文是: BlocBuilder, dynamic>(dirty, state: I/flutter (5919): _BlocBuilderBaseState, dynamic>#55a7d(lifecycle state: created)) I/flutter (5919): 相关导致错误的小部件是:I/flutter(5919):MaterialApp /lib/main.dart:35:12

这是我的主要内容

MaterialApp 小部件

0 投票
1 回答
1444 浏览

flutter - 无状态小部件中的非最终字段

首先,我需要说,我不确定 stackoverflow 是否适合问这个问题,但除了社区之外,我没有人可以问,因为我们在小型初创公司工作,除了我们两个之外,没有 Flutter 开发人员。

我(大约一年开发,大约半年时间学习flutter)和一个有点“10年经验的资深移动开发者”的激烈讨论。

讨论的主题是在无状态小部件中使用非最终字段。他正在这样做,他正在编写这样的代码。他说这是解决他的问题的最好方法。我说这是个坏主意,要么他需要有状态的小部件,要么他的设计很糟糕,他不需要非最终字段。

所以我的问题是:是否存在在无状态小部件中使用非最终字段是合理的情况?

他的论点:

  1. 我们使用的是 BLoC 模式,因为在 StatelessWidget 我们有 BlocBuilder,这个 StatelessWidget 有状态。
  2. 愚蠢的 Dart linter 不知道我们的“BLoC 情况”
  3. 如果我们使用有状态的小部件,代码的可读性会变差。
  4. 如果我们将使用有状态小部件,我们将获得额外的开销。

我知道前两个论点很愚蠢,只有第四个论点值得讨论。

这个问题的可能重复也不能说服我的同事。 Flutter:无状态小部件中的可变字段

请看他的代码:

0 投票
16 回答
31873 浏览

android - 颤振错误:每个孩子必须恰好布置一次。关于建筑布局

我正在使用flutter_bloc。

我有这样的代码:

当启动我的应用程序时,我看到了我想要的 appBar,但我没有看到正文中的任何文本(我应该看到 count1、count2 或 count3),但我得到了错误:

每个孩子必须恰好布置一次。”参考第 5 行 -return new Scaffold(

当然,我在 flutter_bloc 页面、https: //flutter.dev/docs/development/ui/layout/tutorial、here和 google 上查找了信息。