ifLet<ChildState, ChildAction, ChildEnvironment> method
Reducer<State, Action, Environment>
ifLet<ChildState, ChildAction, ChildEnvironment>({
- required Lens<
State, ChildState?> stateLens, - required ActionLens<
Action, ChildAction> actionLens, - ChildEnvironment toLocalEnvironment(
- Environment
- required Reducer<
ChildState, ChildAction, ChildEnvironment> child,
Composes this reducer with a child reducer that operates on optional
state.
When the state projected through stateLens is non-null, the child
reducer runs. When it is null, the child reducer is skipped. This
combines both reducers, with this reducer running first.
Implementation
Reducer<State, Action, Environment> ifLet<ChildState, ChildAction, ChildEnvironment>({
required Lens<State, ChildState?> stateLens,
required ActionLens<Action, ChildAction> actionLens,
ChildEnvironment Function(Environment)? toLocalEnvironment,
required Reducer<ChildState, ChildAction, ChildEnvironment> child,
}) {
return Reducer.combine([
this,
child.nullable().pullback(
stateLens: stateLens,
actionLens: actionLens,
toLocalEnvironment: toLocalEnvironment ?? ((p0) => p0 as ChildEnvironment),
),
]);
}