@reduxjs/toolkit
2.13.0 · 29 Sep 2026MIT45.8M / weekRepositoryHomepagenpmAtom feed
2.13.0 is the newest release of 2.x.
In short
4 fixed9 changed
Release note
This bugfix release improves sorting performance in createEntityAdapter, shrinks the code size in matcher utilities, fixes assorted issues with query hooks, and makes several TS tweaks.
Changelog
Entity Adapter Sorting Performance
Users reported in #4252 that the sorting performance of createEntityAdapter seemed abnormally bad - the provided comparison functions were being called far more times than expected.
Upon investigation, we had a couple of problems. We were always starting from an array that was in insertion order, not the existing sorted order, and that would always require significant effort to re-sort even if there weren't any actual changes to the sorted results. Also, the sorting checks required frequent access to Immer's Proxy-wrapped values, even in cases where all we needed was the plain state values for comparison purposes.
We've reworked the internal sorting logic to always start from the existing sorted array, do reads against a plain value to avoid the Proxy getter overhead where possible, and optimized inserts into existing sorted arrays. This should significantly speed up sorted entity adapter behavior.
Matcher Code Size Optimization
We've reworked the internals of the thunk-related matchers to deduplicate some of the logic, shaving a few bytes off the final bundle size.
RTK Query Hook Updates
defaultSerializeQueryArgs can now handle BigInt values safely.
The isLoading flag logic was improved to handle errors when a query hook tries to subscribe.
TS Updates
create.asyncThunk's types were improved to avoid cases where it might infer any.
We've made several internal types changes to work correctly with React 19's upcoming types.
The retryCondition method now receives unknown as an argument, instead of always assuming the user is using fetchBaseQuery.
Other Changes
The Reselect dep has been bumped to 5.1.0 to match the expected internal usage of createSelector.withTypes().
What's Changed
Update remaining
Contextreferences to match the new nullableContexttypes: Export
GetThunkAPItypeInline the deprecated
React.ReactChildtypeReplace usage of deprecated
JSXglobal namespace withReact.JSXFix
useRefusages to be called with an explicit argument ofundefined.Bump
reselectdependency to 5.1.0 to resolve #4200Improve sorted entity adapter sorting performance
Prevent inference of any in create.asyncThunk
Try out simplifying matcher code
Handle bigint in useQuerySubscription
Ensure hook subscription failures do not reset isLoading state
Improve usability of the
initiate()action for mutations.Make retryCondition receive unknown error, as the user may not be using fetchBaseQuery