MultipleStreamMixin<E, S, K extends Object> mixin Null safety


E represents the bloc event S represents the bloc state K represents the stream key type


Superclass Constraints


streamSubscriptions ↔ StreamSubscriptionsMap<K>
  • contains all the stream's subscriptions which must be disposed if the widget is removed from the tress
  • @protected, @visibleForTesting, read / write
    streams → StreamDataMap<K>
  • add the streams with their unique keys to listen for changes
  • read-only
    state → S
    The current state.
    read-only, inherited
    stream Stream<S>
    The current state stream.
    read-only, inherited
    isClosed bool
    Whether the bloc is closed. [...]
    read-only, inherited
    hashCode int
    The hash code for this object. [...]
    read-only, inherited
    runtimeType Type
    A representation of the runtime type of the object.
    read-only, inherited


    initialise() → void
  • this is called by streamprovider to listen to streams when its created
  • listenToStream(K key, StreamEither<Object, Object?> stream) StreamSubscription
  • listen to the single stream provided
  • onStreamData(K key, Object? data) → void
  • this gets called when the streams returns data with `R'
  • onStreamError(K key, Object? error) → void
  • this gets called when the streams returns data with `L'
  • disposeAllStreams() → void
  • disposed all the stream subscriptions when the bloc is closed and empties the subscriptions map
  • disposeStream(StreamSubscription subscription) → void
  • disposes the provided stream subscription
  • notifySourceChanged(K key) → void
  • this cancels and subscribes again for the same key
  • mostly used to change the stream in runtime
  • close() Future<void>
    Closes the event and state Streams. This method should be called when a Bloc is no longer needed. Once close is called, events that are added will not be processed. In addition, if close is called while events are still being processed, the Bloc will finish processing the pending events.
    add(E event) → void
    Notifies the Bloc of a new event which triggers all corresponding EventHandler instances. If close has already been called, any subsequent calls to add will be ignored and will not result in any subsequent state changes.
    onEvent(E event) → void
    Called whenever an event is added to the Bloc. A great spot to add logging/analytics at the individual Bloc level. [...]
    @mustCallSuper, @protected, inherited
    transformEvents(Stream<E> events, TransitionFunction<E, S> transitionFn) Stream<Transition<E, S>>
    @Deprecated - Use on<Event> with an EventTransformer instead. Will be removed in v8.0.0 [...]
    @Deprecated('Use `on<Event>` with an `EventTransformer` instead. ' 'Will be removed in v8.0.0'), inherited
    emit(S state) → void
    emit should never be used outside of tests. [...]
    @visibleForTesting, inherited
    on<E extends Event>(EventHandler<E, S> handler, {EventTransformer<E>? transformer}) → void
    Register event handler for an event of type E. There should only ever be one event handler per event type E. [...]
    mapEventToState(E event) Stream<S>
    @Deprecated - Use on [...]
    @Deprecated('Use on<Event> instead. Will be removed in v8.0.0'), inherited
    onTransition(Transition<E, S> transition) → void
    Called whenever a transition occurs with the given transition. A transition occurs when a new event is added and a new state is emitted from a corresponding EventHandler. executed. onTransition is called before a Bloc's state has been updated. A great spot to add logging/analytics at the individual Bloc level. [...]
    @mustCallSuper, @protected, inherited
    transformTransitions(Stream<Transition<E, S>> transitions) Stream<Transition<E, S>>
    @Deprecated - Override Stream<State> get stream instead. Will be removed in v8.0.0 [...]
    @Deprecated('Override `Stream<State> get stream` instead. Will be removed in v8.0.0'), inherited
    listen(void onData(S)?, {Function? onError, void onDone()?, bool? cancelOnError}) StreamSubscription<S>
    Adds a subscription to the Stream<State>. Returns a StreamSubscription which handles events from the Stream<State> using the provided onData, onError and onDone handlers.
    @Deprecated('Use stream.listen instead. Will be removed in v8.0.0'), inherited
    onChange(Change<S> change) → void
    Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit. [...]
    @mustCallSuper, inherited
    addError(Object error, [StackTrace? stackTrace]) → void
    Reports an error which triggers onError with an optional StackTrace.
    @mustCallSuper, inherited
    onError(Object error, StackTrace stackTrace) → void
    Called whenever an error occurs and notifies BlocObserver.onError. [...]
    @mustCallSuper, @protected, inherited
    toString() String
    A string representation of this object. [...]
    noSuchMethod(Invocation invocation) → dynamic
    Invoked when a non-existent method or property is accessed. [...]


    operator ==(Object other) bool
    The equality operator. [...]