ThunkContext
data class ThunkContext<State, Action, A : Action, Proposal>(val getState: GetState<State>, val action: A, val dispatch: Dispatcher<Action>, val reduce: suspend (proposal: Proposal) -> Unit, launchBlock: Launch)
ThunkContext is used as receiver for the thunk when defining it with an action:
thunk<A: Action> {
}
// or
thunk(EnumAction) {
}
Content copied to clipboard
Parameters
getState
returns the current state
action
the action that triggered the thunk
dispatch
dispatches an action
reduce
reduces a proposal
launchBlock
launch a coroutine without exposing the bloc's CoroutineScope, it's internal to allow for JobConfig default values via extension functions
Functions
Link copied to clipboard
fun <State, Action, A : Action, Proposal> ThunkContext<State, Action, A, Proposal>.launch(block: SuspendBlock): Cancel
fun <State, Action, A : Action, Proposal> ThunkContext<State, Action, A, Proposal>.launch(jobConfig: JobConfig, block: SuspendBlock): Cancel
Extension function for ThunkContext to launch a coroutine and run a suspend function without exposing the bloc's CoroutineScope.