Controller<Event, State> class
abstract
Takes a Stream
of Events
as input
and transforms them into a Stream
of States
as output.
- Inheritance
-
- Object
- GetLifeCycle
- DisposableInterface
- GetxController
- StateBase<
State> - BaseController<
State> - Controller
- Available Extensions
Constructors
- Controller(State initialState)
-
Takes a
Stream
ofEvents
as input and transforms them into aStream
ofStates
as output.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
- listeners → int
-
no setterinherited
-
onDelete
→ InternalFinalCallback<
void> -
Internal callback that starts the cycle of this controller.
finalinherited
-
onStart
→ InternalFinalCallback<
void> -
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.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
rxState
→ Rx<
State> -
The current rxState.
latefinalinherited
- state → State
-
The current state.
no setterinherited
-
stream
→ Stream<
State> -
The current state stream.
no setterinherited
Methods
-
$configureLifeCycle(
) → void -
inherited
-
add(
Event event) → void -
Notifies the Controller of a new
event
which triggers mapEventToState. If onClose has already been called, any subsequent calls to add will be ignored and will not result in any subsequent state changes. -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
error
which triggers onError with an optional StackTrace.inherited -
addListener(
GetStateUpdate listener) → Disposer -
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(
Object? key, GetStateUpdate listener) → Disposer -
inherited
-
dispose(
) → void -
inherited
-
disposeId(
Object id) → void -
To dispose an
id
from future updates(), this ids are registered byGetBuilder()
or similar, so is a way to unlink the state change with the Widget from the Controller.inherited -
emit(
State state) → void -
emit should never be used outside of tests.
override
-
mapEventToState(
Event event) → Stream< State> -
Must be implemented when a class extends Controller.
mapEventToState is called whenever an
event
is added and is responsible for converting thatevent
into a new state. mapEventToState canyield
zero, one, or multiple states for an event. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyChildrens(
) → void -
inherited
-
onChange(
StateChange< State> change) → void -
Called whenever a
change
occurs with the givenchange
. Achange
occurs when a newstate
is emitted. onChange is called before thestate
of theStateController
is updated. onChange is a great spot to add logging/analytics for a specificStateController
.inherited -
onClose(
) → Future< void> -
Closes the
event
andstate
Streams
. 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 whileevents
are still being processed, the Controller will finish processing the pendingevents
.override -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
error
occurs and notifies ObserverController.onError.inherited -
onEvent(
Event event) → void -
Called whenever an
event
is added to the Controller. A great spot to add logging/analytics at the individual Controller level. -
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
onTransform(
TransformController< Event, State> transition) → void -
Called whenever a
transition
occurs with the giventransition
. Atransition
occurs when a newevent
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. -
refresh(
) → void -
inherited
-
refreshGroup(
Object id) → void -
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies.
inherited
-
removeListenerId(
Object id, VoidCallback listener) → void -
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transformEvents(
Stream< Event> events, TransitionFunction<Event, State> transitionFn) → Stream<TransformController< Event, State> > -
Transforms the
events
stream along with atransitionFn
function into aStream<Transition>
. Events that should be processed by mapEventToState need to be passed totransitionFn
. By defaultasyncExpand
is used to ensure allevents
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 whichevents
are processed. -
transformTransitions(
Stream< TransformController< transitions) → Stream<Event, State> >TransformController< Event, State> > -
Transforms the
Stream<Transition>
into a newStream<Transition>
. By default transformTransitions returns the incomingStream<Transition>
. You can override transformTransitions for advanced usage in order to manipulate the frequency and specificity at whichtransitions
(state changes) occur. -
update(
[List< Object> ? ids, bool condition = true]) → void -
Rebuilds
GetBuilder
each time you callupdate()
; Can take a List ofids
, that will only update the matchingGetBuilder( id: )
,ids
can be reused amongGetBuilders
like group tags. The update will only notify the Widgets, ifcondition
is true.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- observer ↔ ObserverController
-
The current ObserverController instance.
getter/setter pair