id<ID, GlobalState, GlobalAction, ItemState, ItemAction> static method

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

Creates a ForEachStore that identifies items by a custom toID function.

This is the most common constructor. Each item is cached by its ID, so only new items trigger widget creation.

Implementation

static ForEachStore<ID, GlobalState, GlobalAction, ItemState, ItemAction>
    id<ID, GlobalState, GlobalAction, ItemState, ItemAction>({
  required Widget Function(BuildContext context, Store<ItemState, ItemAction> store, ID id) builder,
  required Store<GlobalState, GlobalAction> store,
  required Iterable<ItemState> Function(GlobalState state) getIterable,
  required GlobalAction Function(ID id, ItemAction localAction) embedAction,
  required ID Function(ItemState state) toID,
  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, ItemState state) => toID(state),
          iterableBuilder: iterableBuilder,
          builder: (context, store, id, _, __) => builder(context, store, id),
          onEmptyBuilder: onEmptyBuilder,
        );