CoreWidget class abstract

Base abstract Widget that controls State, stores args and keeps Widget/State in harmony though lifecycle of Widget. CoreWidget extends StatefulWidget and completely solves State specific flow. This solution helps to use it like StatelessWidget, but with benefits of StatefulWidget.

This Widget comes with TickerControl and SingleTickerControl mixin to create Ticker and provide access to vsync. Then use ControlModel with TickerComponent to get access to TickerProvider.

ControlWidget - Can subscribe to multiple ControlModels and is typically used for Pages and complex Widgets.

Inheritance
Implemented types
Implementers
Available Extensions

Constructors

CoreWidget({Key? key, dynamic args})
Base Control Widget that handles State flow. args - Arguments passed to this Widget and also to ControlModels.

Properties

context BuildContext?
Returns BuildContext of current State if is available.
no setter
hashCode int
The hash code for this object.
no setterinherited
holder ControlArgHolder
final
isInitialized bool
Returns 'true' if State is hooked and WidgetControlHolder is initialized.
no setter
isValid bool
Returns 'true' if Widget is active and WidgetControlHolder is not disposed. Widget is valid even when is not initialized yet.
no setter
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scope ControlScope
no setter

Methods

addArg(dynamic args) → void
Adds given args to this Widget's internal arg store. args can be whatever - Map, List, Object, or any primitive.
createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<StatefulWidget>
Creates the mutable state for this widget at a given location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
dispose() → void
Used to clear and dispose object. After this method call is object typically unusable and ready for GC. Can be called multiple times!
override
getArg<T>({dynamic key, T? defaultValue}) → T?
Returns value by given key and Type from this Widget's internal arg store.
getContext({bool root = false}) BuildContext?
Returns BuildContext of this Widget or 'root' context from ControlRootScope.
getScopeControl<T extends ControlModel?>({dynamic key, dynamic args}) → T?
Returns ControlModel by given T or key from current UI Tree
init(Map args) → void
Init is typically called right after constructor by framework. args - Arguments passed from parent or through Factory.
override
mount<T>({dynamic key, T init()?, bool stateNotifier = false}) → T?
Returns value by given key and Type from this Widget's internal arg store. If object is not found, then widget will init and store it to args. Object is also registered for dispose.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyState() → void
onDependencyChanged() → void
Called whenever dependency of Widget is changed. Check State.didChangeDependencies for more info.
onInit(Map args) → void
onStateUpdate(CoreWidget oldWidget, CoreState<CoreWidget> state) → void
Executed when State is changed and new state is available. Widget will try to resurrect State and injects args from 'cache' in holder.
onUpdate(CoreWidget oldWidget) → void
Called whenever Widget needs update. Check State.didUpdateWidget for more info.
register(Disposable? object) → void
Registers object to lifecycle of State.
registerStateNotifier(dynamic object) → void
removeArg<T>({dynamic key}) → void
Removes given arg from this Widget's internal arg store.
setArg<T>({dynamic key, required dynamic value}) → void
Adds given args to this Widget's internal arg store. args can be whatever - Map, List, Object, or any primitive.
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
unregister(Disposable? object) → void

Operators

operator ==(Object other) bool
The equality operator.
inherited