builder method
Widget
builder(
- Widget builder(), {
- void initState()?,
- void onAfterBuild()?,
- void dispose()?,
- ShouldRebuild? shouldRebuild,
- Object? watch()?,
- String? debugPrintWhenRebuild,
- String? tag,
Builds a widget that listens to all injected instances in this list.
Implementation
Widget builder(
Widget Function() builder, {
void Function()? initState,
void Function()? onAfterBuild,
void Function()? dispose,
ShouldRebuild? shouldRebuild,
Object? Function()? watch,
String? debugPrintWhenRebuild,
String? tag,
}) {
final observables = this;
SideEffects<dynamic>? sideEffects;
if (initState != null || onAfterBuild != null || dispose != null) {
sideEffects = SideEffects<dynamic>(
initState: initState,
onAfterBuild: onAfterBuild,
dispose: dispose,
);
}
return OnBuilder<dynamic>(
listenToMany: observables,
sideEffects: sideEffects,
shouldRebuild: (oldSnap, newSnap) {
bool shouldRebuildBasedOnTag = true;
if (tag != null) {
shouldRebuildBasedOnTag = any((injected) {
final currentTag = injected.currentNotificationTag;
return currentTag == null || tag == currentTag;
});
if (!shouldRebuildBasedOnTag) {
return false;
}
}
return shouldRebuild?.call(oldSnap, newSnap) ?? true;
},
watch: watch,
debugPrintWhenRebuild: debugPrintWhenRebuild,
builder: builder,
);
}