Допустим, у меня есть два маршрута: /a/b
, /a/b/d
,
И у меня есть настроенный WrapperRoute
, кажется, он всегда соответствует /a/b
, когда в качестве местоположения я набрал /a/b/d
,Вы можете попробовать с code-sandbox .
import React from "react";
import { render } from "react-dom";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
const routes = [
{
path: "/a/b",
component: () => <div>Component A</div>
},
{
path: "/a/b/d",
component: () => <div>Component B</div>
}
];
const App = () => (
<Router>
<div>
<Link to="/a/b">/a/b</Link>
<br />
<Link to="/a/b/d">/a/b/d</Link>
<Switch>
{routes.map(route => {
return (
<WrapperRoute
key={route.path}
path={route.path}
component={route.component}
/>
);
})}
</Switch>
</div>
</Router>
);
render(<App />, document.getElementById("root"));
function WrapperRoute({ path, component: Page }) {
return (
<Route
exact
path={path}
render={() => {
return <Page />;
}}
/>
);
}
Мне интересно, почему это происходит, у меня exact
определено реквизита