react-redux
9.3.1 · 27 Oct 2026MIT54.9M / weekRepositorynpmAtom feed
Your version
9.3.1 is the newest release of 9.x.
In short
1 new2 changed
Release note
This minor release adds a new syntax for pre-typing hooks.
.withTypes
Previously, the approach for "pre-typing" hooks with your app settings was a little varied. The result would look something like the below:
import type { TypedUseSelectorHook } from "react-redux"
import { useDispatch, useSelector, useStore } from "react-redux"
import type { AppDispatch, AppStore, RootState } from "./store"
export const useAppDispatch: () => AppDispatch = useDispatch
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
export const useAppStore = useStore as () => AppStoreReact Redux v9.1.0 adds a new .withTypes method to each of these hooks, analogous to the .withTypes method found on Redux Toolkit's createAsyncThunk.
The setup now becomes:
import { useDispatch, useSelector, useStore } from "react-redux"
import type { AppDispatch, AppStore, RootState } from "./store"
export const useAppDispatch = useDispatch.withTypes<AppDispatch>()
export const useAppSelector = useSelector.withTypes<RootState>()
export const useAppStore = useStore.withTypes<AppStore>()What's Changed
Update hooks.md — reselect usage with multiple instances simplified
Modernize ESLint configuration
Introduce pre-typed hooks via
hook.withTypes<RootState>()method