- Added a new
useSearchParamshook (see f59ee5488bc343cf3c957b7e0cc395ef5eb572d2)
useSearchParams hook returns a
URLSearchParams object created from the current
location.search 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.
Warning: This release breaks compatibility with 6.0.0-alpha.2
useRoutes) was removed (see cbcd398276efaad31e5e994fdb2f80ca454eb859)
- 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
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.