Модалы не должны находиться в маршруте, так как они должны быть сверху другой страницы, а не на полках страницы. Если вам нужно мое мнение, я бы посоветовал вам поместить модал на любую из страниц и проконтролировать, открыт он или нет с состоянием реакции:
import React from "react";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
import Modal from "./Modal";
export default function BasicExample() {
return (
<Router>
<div>
<Switch>
<Route exact path="/" component={Home} />
</Switch>
</div>
</Router>
);
}
const Home = () => {
const [ isModalOpened, setModalOpened ] = useState(false);
return (
<div>
<h2>Home</h2>
<button onClick={() => setModalOpened(!isModalOpened)}
<Modal isOpened={isModalOpened}>
...modal content here
</Modal>
</div>
);
}
И ваш модальный компонент должен выглядеть примерно так :
const Modal = ({ isOpened, children }) => (
<div>
{
isOpened &&
{ children }
}
</div>
)
Если это поможет, обязательно отметьте его как хороший ответ!