bloc_listenable

Extensions to convert any BLoC or Cubit into Flutter's Listenable / ValueListenable interfaces.

Built on top of stream_listenable.

Features

  • BlocBase.asListenable() — returns a Listenable that notifies on every state change.
  • BlocBase.asValueListenable() — returns a ValueListenable<T> seeded with the current state.

Getting started

dependencies:
  bloc_listenable: ^1.0.0

Usage

final counterCubit = CounterCubit(); // extends Cubit<int>

// As a Listenable
ListenableBuilder(
  listenable: counterCubit.asListenable(),
  builder: (context, child) {
    return Text('Count: ${counterCubit.state}');
  },
);

// As a ValueListenable
ValueListenableBuilder<int>(
  valueListenable: counterCubit.asValueListenable(),
  builder: (context, value, child) {
    return Text('Count: $value');
  },
);

Additional information

Libraries

bloc_listenable