v7.2.4
This release drops our dependency on the core redux
package by inlining bindActionCreators
, and tweaks useSelector
to ensure that selectors aren't run an extra time while re-rendering.
Changelog
Redux Dependency Removal
React-Redux has always imported the bindActionCreators
utility from the core redux
package for use in connect
. However, that meant that we had to have a peer dependency on redux
, and this was the only reason we actually required that redux
be installed. This became more annoying with the arrival of Redux Toolkit, which has its own dependency on redux
internally, and thus users typically saw peer dependency warnings saying that "redux
isn't listed as a dependency in your app".
Code reuse across separate packages is a great thing, but sometimes the right thing to do is duplicate code. So, we've inlined bindActionCreators
directly into React-Redux, and we've completely dropped the dependency on Redux. This means that React-Redux will no longer produce a peerDep warning when used with Redux Toolkit, and <Provider>
and connect
really only need a Redux-store-compatible value to work right.
useSelector
Fixes
Users reported that useSelector
was re-running selector functions again unnecessarily while rendering after a dispatch. We've tweaked the logic to ensure that doesn't happen.
useSelector
also now has checks in development to ensure that selector
and equalityFn
are functions.