react-redux
9.3.1 · 27 Oct 2026MIT54.9M / weekRepositorynpmAtom feed
Where each line stands
Plan an upgradeLatest releases
All 105 releases- 9.x · latest line
9.3.1
27 Oct 2026- breaking
Switch to native
NoInferutility type connect: LogmapStateToPropserrors toconsole.errorin devconnect: SplitmapStateToProps/mapDispatchToPropsunions into ordered overloads
This bugfix release fixes
connecttype inference under TS 7, fixes severalconnectandProviderruntime bugs, adds dev-mode logging for errors thrown inmapStateToProps, and updates our build tooling and TypeScript support matrix.Warning
While
connectis still published and technically supported, we officially deprecatedconnectin 9.3.0 and strongly recommend migrating to use the hooks APIs instead.Changelog
connectTypes and TS 7We had reports that
connectsometimes inferred the wrong props whenmapStateToPropsormapDispatchToPropswas a factory function. The connected component's props would collapse to{}, and a required prop would show up as "missing" at the call site.Turns out the
connectoverloads typed those arguments as unions of the factory form (() => (state) => props) and the plain form. TS7 changed the ordering of which union member got selected, so this broke.As Anders suggested in microsoft/typescript-go#977, we've split those unions into separate overloads listed in order of preference, factory form first. Overload matching no longer depends on how the compiler orders a union. We then applied the same fix to the
mergePropsoverloads, which still failed under TS 7.Bug Fixes
Providernow usesserverStatewhen it's a falsy value like0,false, or''. Previously it checked for truthiness, so a falsy root state fell back to the client store's state during SSR and hydration.nullandundefinedare still treated as "no server state".A connected component's
contextprop is now honored in production. The assignment that picked up the custom context sat inside the development-only validation block. In production, a component with only a custom provider would throw, and one rendered under both providers would read the default provider's store.connectno longer overrides arefpassed as a regular prop whenforwardRefisn't enabled (#2251). With React 19's ref-as-prop, the wrapper was always passing its ownref(undefinedwithoutforwardRef), which replaced the one you passed in.An explicit
dependsOnOwnProps = falseon amapStateToPropsormapDispatchToPropsfunction is now respected. We had been ignoring it for functions declared with two parameters, even though the option exists specifically for functions whoselengthisn't reliable.Rendering
<Provider>in a React Server Component without"use client"now throws a clear dev-mode error that tells you what's wrong, instead of failing with "useIsomorphicLayoutEffect is not a function" (#2082). Setups that resolve thereact-serverexport condition already got a clear error. This covers the setups that don't.mapStateToPropsError LoggingSince v8, an error thrown in
mapStateToPropsduring a store update has been caught in the subscription callback and then effectively swallowed. The component just kept rendering its previous props (#1942).connectnow logs those errors toconsole.errorin development, so they show up in DevTools. Production behavior is unchanged.TypeScript Support
The internal
NoInferhelper type has been replaced with TypeScript's built-inNoInfer, which was added in TS 5.4. That makes TS 5.4 the minimum version for React-Redux's types. Our CI matrix now covers TS 5.6 through 5.9, 6.0, 7.0, andnext.Build Tooling
We've moved the repo to pnpm, Oxlint, and Oxfmt, and switched the library build from tsup to tsdown. The package
exportslayout is unchanged, but the build output comes from a different bundler. If you see any packaging or import problems with this release, please file an issue.What's Changed
connect: LogmapStateToPropserrors toconsole.errorin dev- breaking
Switch to native
NoInferutility type connect: SplitmapStateToProps/mapDispatchToPropsunions into ordered overloadsModern Tooling, Part 1: PNPM
Fix TS7 errors and update TS matrix
Provider: Throw a clearer error when rendered in a React Server ComponentRespect falsy server snapshots and production context overrides
Don't override ref property when not configured to.
Honour explicit
dependsOnOwnProps=falsein getDependsOnOwnProps
9.3.0
15 May 2026- deprecated
Mark
connectas deprecated
This feature release officially marks the
connectAPI as deprecated.That's it. That's the release. :)
Changelog
connectdeprecationWay back in 2022, I officially marked the original Redux core
createStoremethod as deprecated in Redux 4.2.0. As I clearly stated in that release, the goal of markingcreateStoreas deprecated was to encourage users to migrate to modern Redux Toolkit, especially for those users who don't read our docs (such as beginners following outdated tutorials or in bootcamps, etc). The change was visual-only - adding@deprecatedjust marks the import with a strikethrough in an IDE, and the docblock references the "use modern Redux Toolkit" docs page. No runtime errors, no behavior changes, just an indication that the function is considered obsolete and you shouldn't use it directly any more. I also exported alegacy_createStorealias - same function, no deprecation attribute.It's 4 years later, and I'm finally doing the same thing for
connect:)Again, nothing about
connect's behavior is changing, and we do not intend to remove theconnectAPI. But it's 2026, and hooks are the correct way to use React and React-Redux today.We do strongly encourage users to migrate from
connectto theuseSelector / useDispatchhooks in general. This should result in codebases that are easier to understand and ought to improve performance slightly due to the way updates are handled.As with before, React-Redux now exports a
legacy_connectalias that does not have the deprecation attribute applied.Trusted Publishing Fixed
We had set up trusted publishing for React-Redux a couple years ago and did some releases with that enabled, but at some point I did a follow-up release that still used the previous manual workflow, and that lost the trusted publishing provenance flag. We had recent issues requesting a new release with trusted publishing enabled again, so we've fixed that with this release.
What's Changed
- deprecated
Mark
connectas deprecated
9.2.0
10 Dec 2024Improve treeshakeability of build artifacts
Migrate to React
Migrate to React 19 (take 2)
This feature release updates the React peer dependency to work with React 19, and improves treeshakeability of our build artifacts.
Changelog
React 19 Compat
React 19 was just released! We've updated our peer dep to accept React 19, and updated our runtime and type tests to check against both React 18 and 19.
Also see Redux Toolkit v2.5.0 for the same peer dep update.
Treeshaking
We've done some nitty-gritty optimization work to ensure bundlers correctly treeshake unused parts of the bundle.
What's Changed
Improve treeshakeability of build artifacts
Migrate to React
Migrate to React 19 (take 2)
Clean up devdeps
Dependency tracking · free for 3 projects
Know when your own dependencies move
This page watches react-redux. inlinr reads your package.json and keeps the same watch on every dependency you declare, then tells you only what needs you.
Advisories reach you
An email when a critical or high advisory affects a project, before the next install.
Upgrades checked first
Peer ranges, Node, ESM-only and types changes read before you bump.
Only what matters
Majors and breaking notes stay; patches and sibling bumps fold into one line.
Registry facts last checked 4 Nov 2026. Releases and advisories last read 4 Nov 2026.