也许我不明白阻止或提供程序的目的,但我很困惑,为什么我们想要使用它们,而不是使用Ffltter的内置状态管理(使用Stateful窗口小部件).我刚刚完成了一款应用程序,不记得有哪一次我希望自己需要的东西比默认设置更多.有人能帮我把事情说清楚吗?

推荐答案

在某些情况下,您需要BLoC来使您更容易定义应用程序中发生的每个状态或条件.

我们将开始讨论创建类似https://www.tokopedia.com/的应用程序(判断元素并使用手机大小预览).您将看到,在微件部分tokopedia_ss之间有一些加载动画,当数据加载完成时,微件加载动画更改为可查看的微件(作为用户).

bloc中,您将使stateLoding()、stateComplete(Data)、stateFailed(Data).在控制器或屏幕中,您可以描述当阻塞状态为STATE LOADING等时会发生什么.

setstate创建这个用例比较复杂,会使您的代码变得杂乱无章,而且setState会让phone呈现所有的Build()代码.与BloC builder不同,您可以定义每个小部件或部分.

因此,当有10个部分时,使用Bloc可以使其渲染每个状态,但当使用标准setstate时,它将在每次状态更改时一次渲染所有10个部分.

有关BloC:article_about_BloC的更多信息

Flutter相关问答推荐

Flutter:InteractiveViewer中可伸缩SVG背景上的定位小部件不对齐

无法在GroupButton内部正确呈现

如何在Ffltter Chrome应用程序中使用webview_fltter_web显示自定义html而不是外部uri?

如何防止onTapCancel由子元素触发?

UI中的Flutter 下拉列表值未更改

框中的Flutter 适配图像

从Firestore流式传输单个文档还是整个集合更好?

如何使 dart 函数变得通用?

Flutter 附近的连接

TextField 中的富文本并获取 RenderParagraph

使用 flutter_svg 在 flutter 中的 Canvas 上绘制 SVG 图像

构建上下文不能跨异步间隙使用

点击后,将按钮的 colored颜色 禁用/更改一段时间

Flutter 3.10 - 'window' 已弃用,不应使用

围绕父组件旋转位置组件

Flutter 错误:正文可能正常完成,导致返回null

CircleAvatar 在 ListTile 中领先

我几乎每次都将 Stateless Widget 与 BLoC 一起使用.我错了吗?

setState 不会在第一次更新 - Flutter

Flutter .replaceFirst(或全部)不起作用