我在 Flutter 应用中使用 Bloc 的方式
Flutter 世界中的每个人(几乎)都知道 集团 状态管理库。但并不是每个人都知道何时(或如何)使用它。我也是。
这篇文章只是我对事物的看法,可能更有经验的开发者会把它炸成碎片。可能是像我一样做事的方式是错误的。如果是这样,请给我留言。
所以,欧盟。我使用它的主要目的是为了将所有逻辑与 UI 组件(如视图和其他东西)分开。此外,如果您不知道,它就是为此创建的(惊喜)。
假设我们有一个如下图所示的 Web 表单:
这是编辑器页面之一 操作员18 客户关系管理系统。有 文本字段,下拉列表 和两个单独的内部表单来显示消息列表和经理列表。
我要创建的事件的逻辑如下:
1. 在编辑器页面初始化时,主要数据将被传递给 文本字段 和 下拉列表。
2. 然后我们需要为消息和经理列表加载数据,这就是我使用 Bloc 的地方。
Bloc 的条件之一是在使用前提供必要的 Bloc,否则您将收到错误消息“找不到正确的 Provider
我们可以通过两种方式提供 Bloc:
1. 将 Provider 置于 root 之上 材料应用 小部件。 MaterialApp 必须是 Provider 的子级,如下所示:
[
pad-1.dart
即时共享代码、注释和片段。您目前无法执行该操作。您使用另一个标签登录或...
gist.github.com
](https://gist.github.com/kharitonovAL/dab9484c5745a4cee62f43db7dcdf82b)
2.传入Provider 材料页面路由 ,就在您导航到另一个屏幕的位置。你可以这样做:
[
pad-2.dart
即时共享代码、注释和片段。您目前无法执行该操作。您使用另一个标签登录或...
gist.github.com
](https://gist.github.com/kharitonovAL/a71ffb0b7b4158e321099644ac694d35)
最后,您将可以访问提供的 Bloc。
现在我们可以为列表创建 BlocBuilder 并声明状态(例如),如下所示:
[
pad-3.dart
即时共享代码、注释和片段。您目前无法执行该操作。您使用另一个标签登录或...
gist.github.com
](https://gist.github.com/kharitonovAL/154fba650a0eb3057f2471dfdf7ca52f)
我现在很清楚,在你的小部件必须首先加载数据的地方,你需要使用 Bloc。这就是我使用它的方式。
在 操作员18 系统中有一些地方我为 DropdownList 或 AlertDialog 编写了 bloc(使用 Bloc 时,警报是另一件要处理的事情,因为它们有自己的上下文,与主窗口小部件的上下文无关)。
谢谢阅读!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/39272/42532512
标签:github,gist,列表,Bloc,应用,使用,com,Flutter From: https://www.cnblogs.com/amboke/p/16727657.html