經過前兩篇洗禮
認識過 BlocBuilder / BlocSelector
筆者最容易與BlocBuilder搞混的 BlocListener
偵測到State狀態更改需要發生的功能
例如: 顯示SnackBar / dialog對話框
與BlocBuilder相反
他不需要重新 build 畫面widget
listenWhen
: 與buildWhen相似,可以加入判斷決定何時才要監聽狀態
BlocListener<CounterCubit, int>(
listenWhen: (previous, current) {
if (previous - current > 0) {
return false;
}
return true;
},
listener: ((context, state) {
// Scaffold.of(context).snack
ScaffoldMessengerState().showSnackBar(
SnackBar(
content: Text(state.toString()),
),
);
}),
child: Container(),
),