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