lib / com.willowtreeapps.common.external / createThunkMiddleware

createThunkMiddleware

fun <State> createThunkMiddleware(extraArgument: Any? = null): <ERROR CLASS><State>

Thunk middleware for async action dispatches. Usage: val store = createStore(myReducer, initialState, applyMiddleware(thunk, myMiddleware))

    val myNetworkThunk(query: String) = createThunk { dispatch, getState, extraArgument ->
          launch {
              dispatch(LoadingAction())
              //do async stuff
              val result = api.fetch(query)
              dispatch(CompleteAction(result))
          }
      }

    store.dispatch(myNetworkThunk("query"))