bloc_stream 5.0.0 bloc_stream: ^5.0.0 copied to clipboard
A simple package that helps you to implement the BLoC pattern in your applications.
A simple package that helps you to implement the BLoC pattern in your applications.
The BlocStream
class is just a Stream<State>
with a couple extra methods
added to reduce boilerplate. You can subclass it and add your own methods to
implement your business logic.
A BlocStream
is also a sink of actions. By calling add
with an action
function (Action<Bloc, State>
), the bloc will then call that action and merge
the resulting Stream<State>
into the output stream.
Here is an example BLoC that provides a list of events:
import 'package:bloc_stream/bloc_stream.dart';
import 'package:equatable/equatable.dart';
import 'package:example/event_repository.dart';
// Actions
class EventsActions {
static final Action<EventsBloc, List<Event>> fetch =
(bloc, add) async => bloc.repository.list().then(add);
}
// Bloc
class EventsBloc extends BlocStream<List<Event>> {
EventBloc(this.repository) : super(null);
final EventRepository repository;
}
Usage with Flutter #
See flutter_bloc_stream.
You can also use this package in combination with Provider and StreamBuilder.
You could also use a StreamProvider from the Provider package.