child method

Widget child(
  1. Widget builder(
    1. BuildContext context,
    2. T data,
    3. Widget child
    ), {
  2. required Widget child,
  3. Key? key,
})

Creates an inline reactive widget with an isolated static child subtree and fallback protection.

When _bloom contains valid data, invokes builder with BuildContext, data payload, and child. When _bloom does not contain data (BloomState.hasData == false), returns child directly, protecting against extraction exceptions during uninitialized states.

  • builder: Reactive builder callback receiving BuildContext, current data payload, and cached child.
  • child: The static subtree to preserve across rebuilds, also used as fallback when uninitialized.
  • key: Optional widget key.

Requires:

  • builder must be a pure widget construction callback.

Ensures:

  • Returns a reactive Widget isolating child from rebuilds and using child as uninitialized fallback.

Examples

userBloom.build.child(
  (context, user, child) => Row(children: [Text(user.name), child]),
  child: const HeavyAvatar(),
);

Implementation

@pragma('vm:prefer-inline')
Widget child(
  Widget Function(BuildContext context, T data, Widget child) builder, {
  required Widget child,
  Key? key,
}) =>
    _InlineSingleBloomWithChildWidget<T>(
      key: key,
      bloom: _bloom,
      builder: builder,
      child: child,
    );