Bumps react-router from 5.2.1 to 6.11.0.
Release notes
Sourced from react-router's releases.
v6.11.0
What's Changed
Minor Changes
- Enable
basename
support in useFetcher
(#10336)
- If you were previously working around this issue by manually prepending the
basename
then you will need to remove the manually prepended basename
from your fetcher
calls (fetcher.load('/basename/route') -> fetcher.load('/route')
)
- Updated dependencies:
Patch Changes
- When using a
RouterProvider
, useNavigate
/useSubmit
/fetcher.submit
are now stable across location changes, since we can handle relative routing via the @remix-run/router
instance and get rid of our dependence on useLocation()
(#10336)
- When using
BrowserRouter
, these hooks remain unstable across location changes because they still rely on useLocation()
- Fetchers should no longer revalidate on search params changes or routing to the same URL, and will only revalidate on
action
submissions or router.revalidate
calls (#10344)
- Fix inadvertent re-renders when using
Component
instead of element
on a route definition (#10287)
- Fail gracefully on
<Link to="//">
and other invalid URL values (#10367)
- Switched from
useSyncExternalStore
to useState
for internal @remix-run/router
router state syncing in <RouterProvider>
. We found some subtle bugs where router state updates got propagated before other normal useState
updates, which could lead to foot guns in useEffect
calls. (#10377, #10409)
- Log loader/action errors caught by the default error boundary to the console in dev for easier stack trace evaluation (#10286)
- Fix bug preventing rendering of descendant
<Routes>
when RouterProvider
errors existed (#10374)
- Fix detection of
useNavigate
in the render cycle by setting the activeRef
in a layout effect, allowing the navigate
function to be passed to child components and called in a useEffect
there (#10394)
- Allow
useRevalidator()
to resolve a loader-driven error boundary scenario (#10369)
- Enhance
LoaderFunction
/ActionFunction
return type to prevent undefined
from being a valid return value (#10267)
- Ensure proper 404 error on
fetcher.load
call to a route without a loader
(#10345)
- Decouple
AbortController
usage between revalidating fetchers and the thing that triggered them such that the unmount/deletion of a revalidating fetcher doesn't impact the ongoing triggering navigation/revalidation (#10271)
Full Changelog: https://github.com/remix-run/react-router/compare/react-router@6.10.0...react-router@6.11.0
v6.10.0
What's Changed
We recently published a post over on the Remix Blog titled "Future Proofing Your Remix App" that goes through our strategy to ensure smooth upgrades for your Remix and React Router apps going forward. React Router 6.10.0
adds support for these flags (for data routers) which you can specify when you create your router:
const router = createBrowserRouter(routes, {
future: {
// specify future flags here
},
});
You can also check out the docs here and here.
Minor Changes
... (truncated)
Changelog
Sourced from react-router's changelog.
6.11.0
Patch Changes
- Log loader/action errors to the console in dev for easier stack trace evaluation (#10286)
- Fix bug preventing rendering of descendant
<Routes>
when RouterProvider
errors existed (#10374)
- Fix inadvertent re-renders when using
Component
instead of element
on a route definition (#10287)
- Fix detection of
useNavigate
in the render cycle by setting the activeRef
in a layout effect, allowing the navigate
function to be passed to child components and called in a useEffect
there. (#10394)
- Switched from
useSyncExternalStore
to useState
for internal @remix-run/router
router state syncing in <RouterProvider>
. We found some subtle bugs where router state updates got propagated before other normal useState
updates, which could lead to footguns in useEffect
calls. (#10377, #10409)
- Allow
useRevalidator()
to resolve a loader-driven error boundary scenario (#10369)
- Avoid unnecessary unsubscribe/resubscribes on router state changes (#10409)
- When using a
RouterProvider
, useNavigate
/useSubmit
/fetcher.submit
are now stable across location changes, since we can handle relative routing via the @remix-run/router
instance and get rid of our dependence on useLocation()
. When using BrowserRouter
, these hooks remain unstable across location changes because they still rely on useLocation()
. (#10336)
- Updated dependencies:
6.10.0
Minor Changes
Patch Changes
- Fix route ID generation when using Fragments in
createRoutesFromElements
(#10193)
- Updated dependencies:
6.9.0
Minor Changes
-
React Router now supports an alternative way to define your route element
and errorElement
fields as React Components instead of React Elements. You can instead pass a React Component to the new Component
and ErrorBoundary
fields if you choose. There is no functional difference between the two, so use whichever approach you prefer 😀. You shouldn't be defining both, but if you do Component
/ErrorBoundary
will "win". (#10045)
Example JSON Syntax
// Both of these work the same:
const elementRoutes = [{
path: '/',
element: <Home />,
errorElement: <HomeError />,
}]
... (truncated)
Commits
Dependabot compatibility score
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it
@dependabot merge
will merge this PR after your CI passes on it
@dependabot squash and merge
will squash and merge this PR after your CI passes on it
@dependabot cancel merge
will cancel a previously requested merge and block automerging
@dependabot reopen
will reopen this PR if it is closed
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps react-router from 5.2.1 to 6.11.0.
Release notes
Sourced from react-router's releases.
... (truncated)
Changelog
Sourced from react-router's changelog.
... (truncated)
Commits
7ff51c0
chore: Update version for release (#10414)5ec9f8e
chore: Update version for release (pre) (#10410)f4a452b
Avoid unnecessary router subscribes (#10409)82ca7c0
chore: Update version for release (pre) (#10402)bf8ee9d
chore: Update version for release (pre) (#10398)0252132
Merge branch 'main' into release-next5d45497
Allow useNavigate to be called from child component effects (#10394)af76d50
refactor(react-router): Fix useRoutesImpl for SSR (#10395)7110596
Clean up useRoutes RouterProvider detection (#10389)3efa5d0
Remove useSyncExternalStore in favor of useState (#10377)Dependabot compatibility score
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)