当前位置:网站首页>使用 BlocConsumer 同时构建响应式组件和监听状态
使用 BlocConsumer 同时构建响应式组件和监听状态
2022-07-04 21:33:00 【InfoQ】
前言
BlocListener
BlocBuilder
BlocBuilder
BlocListener
BlocBuilder
BlocListener
BlocConsumer
BlocConsumer实现机制
BlocConsumer
BlocBuilder
BlocListener
const BlocConsumer({
Key? key,
required this.builder,
required this.listener,
this.bloc,
this.buildWhen,
this.listenWhen,
}) : super(key: key);
builder
:响应式组件构造方法,和BlocBuilder
的相同。
listener
:状态变化处理监听回调函数,和BlocListener
的定义一致。
bloc
:可选的Bloc
状态对象,如果没有指定,会自动从当前的BuildContext
中查找对应类型的状态对象。
buildWhen
:可选参数,接收前后的状态对象,可以根据前后状态对象返回bool
值,若为true
才会刷新组件。
listenWhen
:可选参数,接收前后的状态对象,可以根据前后状态对象返回bool
值,若为true
才会调用listener
回调方法。
BlocConsumer
builder
@override
Widget build(BuildContext context) {
if (widget.bloc == null) context.select<B, int>(identityHashCode);
return BlocBuilder<B, S>(
bloc: _bloc,
builder: widget.builder,
buildWhen: (previous, current) {
if (widget.listenWhen?.call(previous, current) ?? true) {
widget.listener(context, current);
}
return widget.buildWhen?.call(previous, current) ?? true;
},
);
}
BlocBuilder
BlocBuilder
builderWhen
listenWhen
listener
BlocBuilder
BlocListener
BlocConsumer 应用
总结
BlocConsumer
BlocBuilder
BlocListener
BlocConsumer
BlocBuilder
BlocListener
边栏推荐
- HDU - 1078 FatMouse and Cheese(记忆化搜索DP)
- 应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设
- new IntersectionObserver 使用笔记
- gtest从一无所知到熟练使用(2)什么是测试夹具/装置(test fixture)
- 历史最全混合专家(MOE)模型相关精选论文、系统、应用整理分享
- Interpreting the development of various intelligent organizations in maker Education
- GTEST from ignorance to proficiency (4) how to write unit tests with GTEST
- Kubeadm初始化报错:[ERROR CRI]: container runtime is not running
- Sorting and sharing of selected papers, systems and applications related to the most comprehensive mixed expert (MOE) model in history
- vim 从嫌弃到依赖(23)——最后的闲扯
猜你喜欢
[optimtool.unconstrained] unconstrained optimization toolbox
gtest从一无所知到熟练使用(3)什么是test suite和test case
El tree combined with El table, tree adding and modifying operations
Interpreting the development of various intelligent organizations in maker Education
历史最全混合专家(MOE)模型相关精选论文、系统、应用整理分享
迷失在Mysql的锁世界
TCP三次握手,四次挥手,你真的了解吗?
How to remove the black dot in front of the title in word document
Compréhension approfondie du symbole [langue C]
[ 每周译Go ] 《How to Code in Go》系列文章上线了!!
随机推荐
TCP三次握手,四次挥手,你真的了解吗?
GTEST from ignorance to skillful use (1) GTEST installation
Super detailed tutorial, an introduction to istio Architecture Principle and practical application
# 2156. 查找给定哈希值的子串-后序遍历
MP3是如何诞生的?
Bizchart+slider to realize grouping histogram
Shutter textfield example
解析互联网时代的创客教育技术
Enlightenment of maker thinking in Higher Education
创客思维在高等教育中的启迪作用
GTEST from ignorance to proficiency (4) how to write unit tests with GTEST
How was MP3 born?
学习突围3 - 关于精力
gtest从一无所知到熟练使用(4)如何用gtest写单元测试
el-tree结合el-table,树形添加修改操作
[ 每周译Go ] 《How to Code in Go》系列文章上线了!!
Flutter TextField示例
Sorting and sharing of selected papers, systems and applications related to the most comprehensive mixed expert (MOE) model in history
哈希表(Hash Tabel)
Keep on fighting! The city chain technology digital summit was grandly held in Chongqing