[Snyk] Upgrade react-redux from 7.0.2 to 7.2.2 #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Snyk has created this PR to upgrade react-redux from 7.0.2 to 7.2.2.
✨ Snyk has automatically assigned this pull request, set who gets assigned.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
Release notes
Package name: react-redux
This release allows you to use React Redux with React 17 without a warning when installing. That's about it.
Shameless self-promotion: Check out my new startup, Spaceship 🚀. We're building the Continuous Delivery system of the future.
Changes
This release improves
useSelector
value display in the React DevTools, fixes a potential race condition, and fixes a couple additional minor issues.useSelector
DevTools DisplayThe React DevTools normally show custom hooks with their inspected name (such as "Selector" for
useSelector
), and any calls to core hooks inside. This is not always informative, so React has theuseDebugValue
hook to allow custom hooks to specify what value should be shown instead.useSelector
now callsuseDebugValue
to specifically show the current selected value instead of its internal hooks usage.Bug Fixes
This release has a few different bug fixes:
reactReduxForwardedRef
to avoid a rare situation where someone else might be passing down a field namedforwardedRef
useSelector
error messageChanges
This release fixes two bugs, an algorithmic problem with unsubscribing components and a memory leak with
connect
. It also has optimizations for production bundle size, and adds a couple small improvements to developer readability while debugging.Bug Fixes
connect
in v7 is implemented using hooks, and the hooks usage captures numerous values from the surrounding scope. We received a PR informing us that the way we were capturing these values would likely result in a copy of the first version of its props being kept alive indefinitely.This memory leak has been fixed by extracting a custom hook that receives all the necessary values as arguments, so that they're not captured via closure.
We also received a PR letting us know that the unsubscribe logic had a quadratic algorithm in it, as removing a subscriber would use an
indexOf(listener)
check to remove that callback. If there were a large number of subscribers, that line's runtime would increase rapidly, causing slowdowns.This algorithm has been replaced with tracking subscribers via a linked list, which drastically improves the runtime of this section of the code even with large numbers of subscribers.
Thanks to @ larrylin28 and @ wurstbonbon for finding these bugs and submitting PRs to fix them!
Bundle Size Improvements
We've made a number of small tweaks to the codebase to improve the ability of bundlers to shake and minimize the final included size in a bundle. The net result is that
react-redux@7.2.0
is smaller than 7.1.3, dropping 1.3K min and 0.6K min+gzip. (In fact, it's even smaller than the pre-hooks 7.0.0 when gzipped!)Thanks to @ Andarist for doing most of the work on this!
Debugging Improvements
The
ReactReduxContext
instance now has adisplayName
set, so it should show up in the React DevTools asReactRedux.Provider
.Also, when an error is caught in
useSelector
and re-thrown, we now append the original stack trace.Thanks to @ pieplu and @ r3dm1ke for these!
Changes
UseEffect
(@ larrylin28 - #1506)Forgot to remove a
console
statement before I published 7.1.2. Oops!Lint your source code before publishing, folks.
Changes
This releases fixes a subtle timing bug with
connect
anduseSelector
in React Native environments, and adds the ability to pass through non-Redux-store values as astore
prop.Fixed Store Subscriptions in React Native
Our current implementation requires cascading updates down through connected components. This is primarily done during React's "commit phase" via the
useLayoutEffect
hook. Unfortunately, React warns whenuseLayoutEffect
is called in SSR environments, so we try to feature-detect that and fall back touseEffect
just to avoid that warning.Unfortunately, a tweak to the feature detection conditions during the pre-7.1.0 work caused the check to accidentally fail in React Native environments. This meant that
useEffect
was actually being used all the time, and this led to occasional timing bugs such as #1313 and #1437 . This affected the previous v7.1.x releases.We've fixed that issue, and added additional test cases to ensure that our code works correctly under React Native.
See #1444 for more details on the feature detection and the fix.
Passing Through Non-Store Values
connect
has always accepted passing a Redux store directly to connected components as a prop namedstore
(with the exception of v6). As a result, thestore
prop has effectively been treated as a "reserved" prop, in much the same way thatkey
andref
are "reserved" prop names handled by React.Some users may be using the word "store" to describe their domain data, and have asked to allow variables that aren't a Redux store through the
store
prop to the component (#1393). We've finally been able to implement that capability.Changes
store
prop (@ markerikson - #1447)latestStoreState
field (@ Hypnosphi - #1426)7.1.2-alpha.0
Read more
Read more
This version is essentially the same as the previous 7.1.0-alpha.5 release. But it has an
rc
tag on it, so you can more easily justify the upgrade to your manager.Get to it!
Commit messages
Package name: react-redux
(...args) => args[0]
witharg => arg
in compose.js reduxjs/redux#1622)Compare
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
👩💻 Set who automatically gets assigned
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs