indexed<GlobalState, GlobalAction, ItemState, ItemAction> static method

ForEachStore<int, GlobalState, GlobalAction, ItemState, ItemAction> indexed<GlobalState, GlobalAction, ItemState, ItemAction>({
  1. required Widget builder(
    1. BuildContext context,
    2. Store<ItemState, ItemAction> store,
    3. int index,
    4. int itemCount,
    ),
  2. required Store<GlobalState, GlobalAction> store,
  3. required Iterable<ItemState> getIterable(
    1. GlobalState state
    ),
  4. required GlobalAction embedAction(
    1. int index,
    2. ItemAction localAction
    ),
  5. required Widget iterableBuilder({
    1. required Widget? itemBuilder(
      1. BuildContext,
      2. int
      ),
    2. int? itemCount,
    }),
  6. Widget onEmptyBuilder(
    1. BuildContext
    )?,
})

Creates a ForEachStore that identifies items by their index.

The builder receives the item's index and total count. Use this when items don't have stable unique identifiers.

Implementation

static ForEachStore<int, GlobalState, GlobalAction, ItemState, ItemAction>
    indexed<GlobalState, GlobalAction, ItemState, ItemAction>({
  required Widget Function(BuildContext context, Store<ItemState, ItemAction> store, int index, int itemCount)
      builder,
  required Store<GlobalState, GlobalAction> store,
  required Iterable<ItemState> Function(GlobalState state) getIterable,
  required GlobalAction Function(int index, ItemAction localAction) embedAction,
  required Widget Function({
    required Widget? Function(BuildContext, int) itemBuilder,
    int? itemCount,
  }) iterableBuilder,
  Widget Function(BuildContext)? onEmptyBuilder,
}) =>
        ForEachStore._(
          store: store,
          getIterable: getIterable,
          embedAction: embedAction,
          toID: (index, state) => index,
          iterableBuilder: iterableBuilder,
          builder: (context, store, id, _, itemCount) => builder(context, store, id, itemCount),
          onEmptyBuilder: onEmptyBuilder,
        );