pullback<GlobalState, GlobalAction, GlobalEnvironment> method
Reducer<GlobalState, GlobalAction, GlobalEnvironment>
pullback<GlobalState, GlobalAction, GlobalEnvironment>({
- required Lens<
GlobalState, State> stateLens, - required ActionLens<
GlobalAction, Action> actionLens, - Environment toLocalEnvironment(
- GlobalEnvironment globalEnv
Lifts this local reducer to operate within a larger global domain.
Uses stateLens to read/write local state from/to global state,
and actionLens to extract/embed local actions from/to global actions.
Actions that don't match the lens are ignored (no state change, no effects).
final globalReducer = localReducer.pullback(
stateLens: (get: (g) => g.local, set: (g, l) => g.copyWith(local: l)),
actionLens: (extract: (g) => g.local, embed: (l) => GlobalAction.local(l)),
);
Implementation
Reducer<GlobalState, GlobalAction, GlobalEnvironment> pullback<GlobalState, GlobalAction, GlobalEnvironment>({
required Lens<GlobalState, State> stateLens,
required ActionLens<GlobalAction, Action> actionLens,
Environment Function(GlobalEnvironment globalEnv)? toLocalEnvironment,
}) {
return _pullback(
toLocalState: stateLens.get,
toGlobalState: stateLens.set,
toLocalAction: actionLens.extract,
toGlobalAction: actionLens.embed,
toLocalEnvironment: toLocalEnvironment ?? ((p0) => p0 as Environment),
);
}