reduxjs/redux-toolkit

Add `pendingMeta` to `createAsyncThunk`'s `thunkAPI`

renchap opened this issue · 0 comments

It is sometimes useful the have the same meta attributes in both the pending and fulfilled actions when using createAsyncThunk.

A solution to this could be to add the result of getPendingMeta to the thunkAPI argument, so the payload creator can use it without needing to recompute it again.

I looked at the source code and it seems easy to use a variable for the getPendingMeta result and add it to thunkAPI above.

Another solution would be to have a way to add a meta attribute to every action (and not only pending).

In our use-case, we are using a middleware to handle displaying a page-wide loading bar when some actions are loading remote data. It would be useful to be able to do something like this:

 getMeta: ({ arg: { id } }, { getState }) => ({
      showLoadingBar: true,
      locked: getState().accounts.get(id)?.locked || false,
    }),

The showLoadingBar would be used by the middleware, and the locked attribute is needed for both pending and fulfilled in the reducer.