ex_bloc 0.1.8 copy "ex_bloc: ^0.1.8" to clipboard
ex_bloc: ^0.1.8 copied to clipboard

outdated

ExBloc provide simple way to organize bloc middleware and dispatch events.

ex_bloc #

ExBloc provide simple way to organize bloc middleware and dispatch events.

Usage #

Import #

import 'package:ex_bloc/ex_bloc.dart';

Get ExStore #

final store = ExStore.instance;

Simple state #

class TestState {
  final bool afterInitial;

  const TestState({this.afterInitial});
  factory TestState.initial() {
    return const TestState(afterInitial: false);
  }
}

Simple bloc #

ExBloc does not contain business logic.

ServiceModel should contain third party dependencies or EmptyServiceModel if there are no third party dependencies.

class TestBloc extends ExBloc<TestEvent, TestState, EmptyServiceModel> {
  TestBloc(EmptyServiceModel sm) : super(sm);

  @override
  TestState get initialState => TestState.initial();
}

Event #

ExEvent provide business logic and payload

ExStore provide ability to dispatch other events or get other states.

class TestEvent extends ExEvent<TestState, EmptyServiceModel> {
  @override
  Stream<TestState> call(
      ExStore store, TestState state, EmptyServiceModel sm) async* {
    yield TestState(afterInitial: true);
  }
}

Dispatch events #

store.dispatch(TestEvent());

or

TestEvent().dispatch();

Get state from ExStore #

final store = ExStore.instance;
final testState = store.getState<TestState>();

Relesect usage #

Reselect can be used if needed

final testStateSelector = (ExStore store) => store.getState<TestState>();

final afterInitialSelector = createSelector1(
    testStateSelector,
    (TestState testState) => testState.afterInitial,
);
8
likes
0
pub points
0%
popularity

Publisher

unverified uploader

ExBloc provide simple way to organize bloc middleware and dispatch events.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

bloc

More

Packages that depend on ex_bloc