OnCRUDBuilder class
To listen to an InjectedCRUD state just use ReactiveStatelessWidget, OnReactive, or OnBuilder widgets.
Nevertheless, as the CREATE, UPDATE, DELETE functions can be performed optimistically, the user will not notice anything. Looks like he's dealing with a simple sync list of items.
If we want to show the user that something is happening in the background,
we can use the OnCRUDBuilder
widget.
OnCRUDBuilder<T>(
listenTo: products,
onWaiting: ()=> Text('onWaiting'),
onError: (err, refreshErr)=> Text('onError'),
onResult: (result)=> Text('onResult'),
)
- onWaiting: while the database is querying.
- onError: if the query ends with an error. IT exposes a refresher to reinvoke the async call that caused the error.
- onResult; if the request ends successfully. It exposes the result fo the query (ex: number of rows updated).
OnCRUDBuilder vs OnBuilder.all or OnBuilder.orElse:
- Both used to listen to injected state.
- In pessimistic mode they are equivalent.
- In optimistic mode, the difference is in the onWaiting hook.
- In
OnBuilder.all
the onWaiting in never called. - In
OnCRUDBuilder
the onWaiting is called while waiting for the backend service result.
- In
OnBuilder.all
has onData callback.OnCRUDBuilder
has onResult callback that exposes the return result for the backend service.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- IStatefulWidget
- MyStatefulWidget
- OnCRUDBuilder
Constructors
- OnCRUDBuilder({Key? key, required InjectedCRUD listenTo, Widget onWaiting()?, Widget onError(dynamic, void ())?, required Widget onResult(dynamic), void dispose()?, String? debugPrintWhenRebuild})
- To listen to an InjectedCRUD state just use ReactiveStatelessWidget, OnReactive, or OnBuilder widgets.
Properties
-
cleaners
→ List<
VoidCallback> -
finalinherited
- debugPrintWhenRebuild → String?
-
finalinherited
- didChangeDependencies → void Function(BuildContext context, ReactiveModel? model)?
-
finalinherited
- didUpdateWidget → void Function(BuildContext context, ReactiveModel? model, MyStatefulWidget oldWidget)?
-
finalinherited
- dispose → void Function(BuildContext context, ReactiveModel? model)?
-
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- initState → void Function(BuildContext context, ReactiveModel? model)?
-
finalinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- listenTo → InjectedCRUD
-
InjectedCRUD to listen to
final
-
observers
→ List<
ReactiveModelImp> Function(BuildContext context) -
finalinherited
- onError → Widget Function(dynamic, void ())?
-
Widget to display if a CRUD operation fails
final
- onResult → Widget Function(dynamic)
-
Widget to display if a CRUD operation ends successfully. It exposes the
result of the CRUD operation
final
- onSetState → void Function(BuildContext, SnapState, ReactiveModel)?
-
finalinherited
- onWaiting → Widget Function()?
-
Widget to display while waiting for any CRUD operation
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- shouldRebuild → ShouldRebuild?
-
Whether to rebuild the widget after state notification.
finalinherited
- sideEffects → SideEffects?
-
finalinherited
Methods
-
builder(
BuildContext context, SnapState snap, ReactiveModel rm) → Widget -
inherited
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → _MyStatefulWidgetState -
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
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
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
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited