BlocBuilder và BlocListener trong Bloc Flutter
BlocBuilder
và BlocListener
là hai widget trong Flutter cho phép bạn theo dõi và cập nhật trạng thái của một bloc.
BlocBuilder
được sử dụng để cập nhật giao diện khi trạng thái của bloc thay đổi. Nó là một widget reactive và sẽ tự động rebuild khi trạng thái thay đổi. Nếu bạn cần cập nhật giao diện khi trạng thái của bloc thay đổi, bạn nên sử dụng BlocBuilder
.
BlocListener
được sử dụng để thực hiện một hành động nào đó khi trạng thái của bloc thay đổi. Nó không thay đổi giao diện mà chỉ thực hiện một hành động nào đó khi trạng thái của bloc thay đổi. Nếu bạn cần thực hiện một hành động nào đó khi trạng thái của bloc thay đổi, bạn nên sử dụng BlocListener
.
Ví dụ:
BlocBuilder<MoneyBloc, int>(
builder: (context, money) {
return Text('\$$money');
},
);
BlocListener<MoneyBloc, int>(
listener: (context, money) {
showSnackbar(context, 'Money changed to \$$money');
},
child: Container(),
);
Trong ví dụ trên, BlocBuilder
sẽ được sử dụng để cập nhật giao diện khi trạng thái của bloc thay đổi, trong khi BlocListener
sẽ được sử dụng để thực hiện show 1 snackbar khi trạng thái thay đổi.