Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

react-redux versions available: 6.0.0 #113

Closed
dependencies bot opened this issue Dec 5, 2018 · 0 comments
Closed

react-redux versions available: 6.0.0 #113

dependencies bot opened this issue Dec 5, 2018 · 0 comments
Assignees

Comments

@dependencies
Copy link

dependencies bot commented Dec 5, 2018

There are new versions of react-redux available from npm.

6.0.0

馃帀 This is our first big release supporting the new Context API added in React 16.4! No more blocked updates!

As such, we now require React 16.4 or higher. Make sure to update your version when updating to this release.

This work has been mostly lead by cellog and markerikson, with special guest appearances by yours truly and a whole cast of helpful reviewers.

Note: If you'd like to know more about the changes in v6, and how the implementation has changed over time, see Mark's post Idiomatic Redux: The History and Implementation of React-Redux.

Breaking Changes

  • The withRef option to connect has been replaced with forwardRef. If {forwardRef : true} has been passed to connect, adding a ref to the connected wrapper component will actually return the instance of the wrapped component. (Known issue: Redux Form currently relies on withRef.)

  • Passing store as a prop to a connected component is no longer supported. Instead, you may pass a custom context={MyContext} prop to both <Provider> and <ConnectedComponent>. You may also pass {context : MyContext} as an option to connect.

Behavior Changes

Any library that attempts to access the store instance out of legacy context will break, because we now put the store state into a <Context.Provider> instead. Examples of this include connected-react-router and react-redux-subspace. (The current implementation does also put the store itself into that same context. While accessing the store in context is not part of our public API, we will still try to make it possible for other libraries to access it, with the understanding that this could break at any time.)

Also, there is a behavior change around dispatching actions in constructors / componentWillMount. Previously, dispatching in a parent component's constructor would cause its children to immediately use the updated state as they mounted, because each component read from the store individually. In version 6, all components read the same current store state value from context, which means the tree will be consistent and not have "tearing". This is an improvement overall, but there may be applications that relied on the existing behavior.

Changes

  • Use React.createContext() (#1000 by cellog)
  • Use Prettier (#1071 by NMinhNguyen)
  • Only run isValidElementType in development builds (#1069 by alexreardon)
  • Treat null as a valid plain object prototype in isPlainObject() (#1075 by rgrove)
  • Ensure connectAdvanced only re-renders if derived props change (#1079 by epeli and markerikson)
@StephenCleary StephenCleary self-assigned this Mar 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant