scope<LocalState, LocalAction> method
Store<LocalState, LocalAction>
scope<LocalState, LocalAction>({
- required LocalState toLocalState(
- S globalState
- required A toGlobalAction(
- LocalAction localAction
Creates a scoped child store that projects a subset of state and actions.
The child store:
- Derives its state from the parent via
toLocalState. - Forwards actions to the parent via
toGlobalAction. - Does not run its own reducer; all state changes flow through the parent.
final counterStore = appStore.scope(
toLocalState: (app) => app.counter,
toGlobalAction: (action) => AppAction.counter(action),
);
Implementation
Store<LocalState, LocalAction> scope<LocalState, LocalAction>({
required LocalState Function(S globalState) toLocalState,
required A Function(LocalAction localAction) toGlobalAction,
}) {
return Store._(
subject: _subject.derive(toLocalState),
reducer: (state, action) => (state: state, effect: Effect.none()),
send: (localAction) => send(toGlobalAction(localAction)),
);
}