Skip to content

Commit a2e2197

Browse files
chaancemjackson
authored andcommitted
remove location prop from "Routes"
1 parent 2317f3e commit a2e2197

File tree

3 files changed

+10
-67
lines changed

3 files changed

+10
-67
lines changed

packages/react-router/__tests__/Routes-test.tsx

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -82,26 +82,4 @@ describe("A <Routes>", () => {
8282

8383
expect(renderer.toJSON()).toMatchSnapshot();
8484
});
85-
86-
it("Uses the `location` prop instead of context location`", () => {
87-
let node = document.createElement("div");
88-
document.body.appendChild(node);
89-
90-
act(() => {
91-
ReactDOM.render(
92-
<Router initialEntries={["/one"]}>
93-
<Routes location={{ pathname: "/two" }}>
94-
<Route path="/one" element={<h1>one</h1>} />
95-
<Route path="/two" element={<h1>two</h1>} />
96-
</Routes>
97-
</Router>,
98-
node
99-
);
100-
});
101-
102-
expect(node.innerHTML).toMatch(/two/);
103-
104-
// cleanup
105-
document.body.removeChild(node);
106-
});
10785
});
Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import * as React from "react";
2-
import * as ReactDOM from "react-dom";
32
import { create as createTestRenderer } from "react-test-renderer";
43
import { MemoryRouter as Router, useRoutes } from "react-router";
5-
import { act } from "react-dom/test-utils";
64
import type { PartialRouteObject } from "react-router";
75

86
describe("useRoutes", () => {
@@ -28,40 +26,14 @@ describe("useRoutes", () => {
2826

2927
expect(renderer.toJSON()).toMatchSnapshot();
3028
});
31-
32-
it("Uses the `location` prop instead of context location`", () => {
33-
let node = document.createElement("div");
34-
document.body.appendChild(node);
35-
36-
let routes = [
37-
{ path: "one", element: <h1>one</h1> },
38-
{ path: "two", element: <h1>two</h1> }
39-
];
40-
41-
act(() => {
42-
ReactDOM.render(
43-
<Router initialEntries={["/one"]}>
44-
<RoutesRenderer routes={routes} location={{ pathname: "/two" }} />
45-
</Router>,
46-
node
47-
);
48-
});
49-
50-
expect(node.innerHTML).toMatch(/two/);
51-
52-
// cleanup
53-
document.body.removeChild(node);
54-
});
5529
});
5630

5731
function RoutesRenderer({
5832
routes,
59-
basename,
60-
location
33+
basename
6134
}: {
6235
routes: PartialRouteObject[];
6336
basename?: string;
64-
location?: Partial<Location>;
6537
}) {
66-
return useRoutes(routes, basename, location);
38+
return useRoutes(routes, basename);
6739
}

packages/react-router/index.tsx

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ export function Router({
255255
export interface RoutesProps {
256256
basename?: string;
257257
children?: React.ReactNode;
258-
location?: Partial<Location>;
259258
}
260259

261260
/**
@@ -266,11 +265,11 @@ export interface RoutesProps {
266265
*/
267266
export function Routes({
268267
basename = "",
269-
children,
270-
location
268+
children
271269
}: RoutesProps): React.ReactElement | null {
272270
let routes = createRoutesFromChildren(children);
273-
return useRoutes_(routes, basename, location);
271+
let location = useLocation();
272+
return useRoutes_(routes, location, basename);
274273
}
275274

276275
///////////////////////////////////////////////////////////////////////////////
@@ -492,8 +491,7 @@ export function useResolvedPath(to: To): Path {
492491
*/
493492
export function useRoutes(
494493
partialRoutes: PartialRouteObject[],
495-
basename = "",
496-
locationProp?: Partial<Location>
494+
basename = ""
497495
): React.ReactElement | null {
498496
invariant(
499497
useInRouterContext(),
@@ -502,18 +500,19 @@ export function useRoutes(
502500
`useRoutes() may be used only in the context of a <Router> component.`
503501
);
504502

503+
let location = useLocation();
505504
let routes = React.useMemo(
506505
() => createRoutesFromArray(partialRoutes),
507506
[partialRoutes]
508507
);
509508

510-
return useRoutes_(routes, basename, locationProp);
509+
return useRoutes_(routes, location, basename);
511510
}
512511

513512
function useRoutes_(
514513
routes: RouteObject[],
515-
basename = "",
516-
locationProp?: Partial<Location>
514+
location: Location,
515+
basename = ""
517516
): React.ReactElement | null {
518517
let {
519518
route: parentRoute,
@@ -541,12 +540,6 @@ function useRoutes_(
541540

542541
basename = basename ? joinPaths([parentPathname, basename]) : parentPathname;
543542

544-
let contextLocation = useLocation() as Location;
545-
let location = React.useMemo(() => {
546-
return locationProp
547-
? { ...contextLocation, ...locationProp }
548-
: contextLocation;
549-
}, [locationProp, contextLocation]);
550543
let matches = React.useMemo(
551544
() => matchRoutes(routes, location, basename),
552545
[location, routes, basename]

0 commit comments

Comments
 (0)