This bugfix release adds a new dev-mode middleware to catch accidentally dispatching an action creator, adds a new listener middleware option around waiting for forks, adds a new option to update provided tags when updateQueryData
is used, reworks internal types to better handle uses with TS declaration output, and fixes a variety of small issues.
Changelog
Action Creator Dev Check Middleware
RTK already includes dev-mode middleware that check for the common mistakes of accidentally mutating state and putting non-serializable values into state or actions.
Over the years we've also seen a semi-frequent error where users accidentally pass an action creator reference to dispatch
, instead of calling it and dispatching the action it returns.
We've added another dev-mode middleware that specifically catches this error and warns about it.
Additional Options
The listener middleware's listenerApi.fork()
method now has an optional autoJoin
flag that can be used to keep the effect from finishing until all active forked tasks have completed.
updateQueryData
now has an updateProvidedTags
option that will force a recalculation of that endpoint's provided tags. It currently defaults to false
, and we'll likely turn that to true
in the next major.
Other Fixes
The builder.addCase
method now throws an error if a type
string is empty.
fetchBaseQuery
now uses an alternate method to clone the original Request
in order to work around an obscure Chrome bug.
The immutability middleware logic was tweaked to avoid a potential stack overflow.
Types Changes
The internal type imports have been reworked to try to fix "type portability" issues when used in combination with TS declaration outputs.
A couple additional types were exported to help with wrapping createAsyncThunk
.
What's Changed
- create action creator middleware by @EskiMojo14 in #3414
- Implement auto fork joining by @ericanderson in #3407
- types: make it easier to wrap createAsyncThunk by @shrouxm in #3393
- Fixed Stackoverflow bug if children prop is a ref to root/parent object by @cheprasov in #3428
- Fix TransformedResponse type to unwrap promise by @EskiMojo14 in #3500
- Throw error when type is empty in builder.addCase by @chawes13 in #3572
- [RED-23] fix: Updated type references to resolve portable types issue by @tdurnford in #3728
- add option to update provided tags by @dutzi in #3255
- [RED-26] Remove Request.clone() usage in fetchBaseQuery by @alex-vukov in #3720
- Try working around TS 4.1 mismatch by @markerikson in #3739
Full Changelog: v1.9.5...v1.9.6