[Snyk] Upgrade react-redux from 5.0.6 to 7.1.1 #3
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 5.0.6 to 7.1.1.Warning: This is a major version upgrade, and may be a breaking change.
Release notes
This release is sponsored by Deft, providing technical teams to high-growth SaaS companies with the processes they need to scale successfully. Please reach out to see how we can help with your software development, systems architecture, and infrastructure design needs.
This release includes some new APIs for those that want to use a custom React Context with our Hooks API, a small memory optimization, and has a fix for when the
store
changes on aProvider
with incompatiblechildren
.Changes
create*Hook
factory APIs (#1309 by @ryaninvents)P.S. On the sponsorship section above, it's a thing we're trying out to see how it feels and if it causes any problems for your workflows. (Don't worry, no ads are coming to your npm installs!) The idea for future releases is to let those that contributed to that release have the opportunity to sponsor that release. We don't need donations, but we definitely do need PRs! Hopefully, it's a fair way to encourage them. Please let us know if it's a problem in any way.
Hooks!
After much discussion, we've decided these Hook things are probably going to stick around, so we might as well add some. Many thanks to @MrWolfZ, @josepot, @perrin4869, and @mpeyper for their contributions and to everyone else that offered feedback, ideas, and critiques as we built them out. Go open source!
Changes
deps
argument touseSelector
(#1251 by @MrWolfZ)useRedux
(@markerikson)useActions
(@markerikson)deps
argument (#1272 by @josepot)shallowEqual
with reference equality inuseSelector
(#1288 by @perrin4869)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!
We're still making changes to our hooks APIs, but I'm hopeful that we're getting close to having the behavior nailed down.
This release makes three specific changes to
useSelector
:deps
array has been removed. If you want to ensure the same selector function reference is used, you should memoize it yourself.===
check, instead of a shallow equality check.useSelector
now accepts a comparison function as an optional second argument, similar to howReact.memo()
works conceptually. You may pass your own comparison function to customize howuseSelector
determines if a re-render is necessary.In addition, we now export our internal
shallowEqual
utility function. If you want to return to the prior equality behavior, you may pass that as the equality comparison function:The optional comparison function also enables using something like Lodash's
_.isEqual()
or Immutable.js's comparison capabilities.Changes
Our previous alpha versions included both
useSelector()
(similar tomapState
) anduseActions()
(similar tomapDispatch
).However, Dan Abramov strongly suggested that we consider removing
useActions()
, as the idea of "binding action creators" is less relevant when using hooks, and also adds conceptual overhead and syntactic complexity. We requested feedback from alpha users, and the initial feedback agreed with Dan's suggestion.Based on that feedback, v7.1.0-alpha.4 removes the
useActions()
hook. Instead, calluseDispatch()
in your component, and manually calldispatch(someActionCreator())
in callbacks and effects as needed.If you still wish to use
useActions()
, the hooks alpha docs page has an implementation you can copy and paste into your own code.Changes
After discussion in the hooks alpha feedback issue, we've decided to remove the
useRedux()
hook, as it doesn't really bring any benefits. If you were using it in your own code, replace theuseRedux()
call with separate calls touseSelector()
anduseActions()
.This release also includes the timing bugfix from #1263.
Also, while you won't notice it, @mpeyper was able to simplify our hooks unit tests using
react-hooks-testing-library
.Changes
That's why React Redux now includes a set of hooks you can use as an alternative to
connect()
!This alpha release includes the following hooks:
useSelector()
: extracts values from the Redux store state and subscribes to the store (similar tomapState
)useActions()
: binds action creators so that they dispatch actions when called (similar tomapDispatch
)useRedux()
: both extracts values and binds action creators (similar toconnect()
)useDispatch()
: returns the storedispatch
methoduseStore()
: returns the Redux store instanceFor more details, please see the "Hooks" API reference page under the "next" version section of the React Redux docs. In addition, issue #1179: Discussion: Potential hooks API design contains the history of how these APIs were designed.
Please try these hooks out in your own apps, and give us feedback on how well they work!
We've opened up issue #1252 as a thread for feedback and discussion of the alpha.
Changes
useSelector
(#1251 by @MrWolfZ)Contributors
Thanks to:
Initial alpha hooks release. See the release notes for v7.1.0-alpha.1 for details.
This release includes a bugfix for a timing issue in
connect()
, and also lowers our React peer dependency slightly to allow better usage with React Native 0.59.Changes
This is a bug fix release with a small performance improvement and fix for nested component unmounting.
Changes
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs