Skip to content
Choose a tag to compare


Choose a tag to compare

Major Features

  • Added a new useSearchParams hook (see f59ee54)

The useSearchParams hook returns a URLSearchParams object created from the current string. This is a feature that people have wanted for a while, but we were always hesitant to ship a full-blown query parser with the router. Well, now that we have URLSearchParams widely available, we don't have to. I wrote up a small guide about how to use useSearchParams if you'd like to read more.

Major Changes

Warning: This release breaks compatibility with 6.0.0-alpha.2

  • Redirect (and redirectTo in useRoutes) was removed (see cbcd398)
  • We no longer support redirecting on the initial render, due to compatibility issues with future versions of React

React won't let us change the state in an ancestor component on the initial render w/out warning, so we had to remove the <Redirect> component, as well as the ability to do a navigate() on the initial render. You can still render a <Navigate>, but it won't actually update the page until the next render.

If you really need to redirect on the initial render, you can either a) do it on your server (probably best, so it can be cached at the HTTP level instead of doing it in every user's browser) or b) do it outside of React Router (e.g. using the history API directly).


Development for v6 is happening on the dev branch.

If you'd like to test it out, install from npm:

$ npm install react-router@next react-router-dom@next

Or, if you're on React Native:

$ yarn add react-router@next react-router-native@next

We are actively working on documentation. For now, if you're just interested in testing things out you may be interested in the getting started guide. If you're interested in upgrading an existing app, please check out the v5 to v6 migration guide.