Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclases.
This method should be internal and is required to define the
lifetime cycle of the subclass.
Notifies the Controller of a new event which triggers mapEventToState.
If close has already been called, any subsequent calls to add will
be ignored and will not result in any subsequent state changes.
To dispose an id from future updates(), this ids are registered
by GetBuilder() or similar, so is a way to unlink the state change with
the Widget from the Controller.
Must be implemented when a class extends Controller.
mapEventToState is called whenever an event is added
and is responsible for converting that event into a new state.
mapEventToState can yield zero, one, or multiple states for an event.
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 StateController is updated.
onChange is a great spot to add logging/analytics for a specific StateController.
Closes the event and stateStreams.
This method should be called when a Controller is no longer needed.
Once onClose is called, events that are added will not be
processed.
In addition, if onClose is called while events are still being
processed, the Controller will finish processing the pending events.
Called whenever a transition occurs with the given transition.
A transition occurs when a new event is added and mapEventToState
executed.
onTransform is called before a Controller's state has been updated.
A great spot to add logging/analytics at the individual Controller level.
Transforms the events stream along with a transitionFn function into
a Stream<Transition>.
Events that should be processed by mapEventToState need to be passed to
transitionFn.
By default asyncExpand is used to ensure all events are processed in
the order in which they are received.
You can override transformEvents for advanced usage in order to
manipulate the frequency and specificity with which mapEventToState is
called as well as which events are processed.
Transforms the Stream<Transition> into a new Stream<Transition>.
By default transformTransitions returns
the incoming Stream<Transition>.
You can override transformTransitions for advanced usage in order to
manipulate the frequency and specificity at which transitions
(state changes) occur.
Rebuilds GetBuilder each time you call update();
Can take a List of ids, that will only update the matching
GetBuilder( id: ),
ids can be reused among GetBuilders like group tags.
The update will only notify the Widgets, if condition is true.