children method

Widget children(
  1. Widget builder(
    1. BuildContext context,
    2. T data,
    3. List<Widget> children
    ), {
  2. required List<Widget> children,
  3. Key? key,
})

Creates an inline reactive widget with isolated static children subtrees and fallback protection.

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

  • builder: Reactive builder callback receiving BuildContext, current data payload, and cached children.
  • children: The static subtrees to preserve across rebuilds.
  • key: Optional widget key.

Requires:

  • builder must be a pure widget construction callback.

Ensures:

  • Returns a reactive Widget isolating children from rebuilds.

Examples

menuBloom.build.children(
  (context, menu, children) => Column(children: [Header(menu.title), ...children]),
  children: const [HeavyChart(), HeavyFooter()],
);

Implementation

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