提问人:Rasputin221 提问时间:10/28/2023 最后编辑:tomerpacificRasputin221 更新时间:10/28/2023 访问量:34
Flutter BlocBuilder 和 context.watch 之间的区别?
Flutter Difference between BlocBuilder and context.watch?
问:
我在我的应用程序中使用 cubit 作为状态管理。BlocBuilder 和 context.watch 有什么区别?恕我直言,既对底层 Cubit / Bloc 中的值变化做出反应,又触发 UI 构建?我不是在要求代码实现,而是在寻求用例建议。
答:
0赞
tomerpacific
10/28/2023
#1
在比较这两种方法并查看文档时,您可以推断出:
- BlocBuilder 处理构建小部件以响应新状态
- context.watch 从最近的 T 或 T?类型的祖先提供程序获取值,并订阅该提供程序
这里显然还有更多内容,我建议在文档中阅读它。我假设在您不可用上下文的地方,您可能会选择使用 BlocBuilder。
此外,context.watch 与调用 Provider.of(context) 相同,也只能称为 StatelessWidget.build 和 State.build。
另外,我发现这个 GitHub 问题包含一些相关信息。
评论
1赞
Rasputin221
10/28/2023
BlocBuilder 还需要 builder 参数的上下文。
0赞
tomerpacific
10/28/2023
@Rasputin221 - BlocBuilder 不需要上下文,而是它的 builder 方法将 BuildContext 作为参数。此外,我还在 GitHub 中添加了一个讨论链接,其中包含有关您的问题的更多信息。
评论