После нескольких попыток мне удалось реализовать базовую c вложенную маршрутизацию с React-router-dom.
Вот простая структура проекта :
Вот соответствующие файлы :
Приложение. js
import React from "react";
import logo from "./logo.svg";
import "./App.css";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import ParentComponent from "./Components/nestedComponents/ParentComponent";
import NavBar from "./Components/Shared/NavBar";
function App() {
return (
<div className="App">
<BrowserRouter>
<NavBar />
<Switch>
<Route path="/home" name="Home" component={ParentComponent} />
</Switch>
</BrowserRouter>
</div>
);
}
export default App;
NavBar. js
import React from "react";
import { Link } from "react-router-dom";
export default function NavBar() {
return (
<div>
<Link to={`home/nestedComponentOne`}> Nested Component One </Link>
<Link to={`home/nestedComponentTwo`}> Nested Component Two </Link>
</div>
);
}
ParentComponent. js
import React from "react";
import nestedComponentOne from "./nestedComponentOne";
import nestedComponentTwo from "./nestedComponentTwo";
import { Switch, Route } from "react-router-dom";
export default function ParentComponent() {
return (
<div>
<Switch>
<Route path="/home/nestedComponentOne" component={nestedComponentOne} />
<Route path="/home/nestedComponentTwo" component={nestedComponentTwo} />
</Switch>
</div>
);
}
nestedComponentOne. js
import React from "react";
export default function nestedComponentOne() {
return <div>NESTED COMPONENT 1</div>;
}
nestedComponentTwo. js
import React from "react";
export default function nestedComponentTwo() {
return <div>NESTED COMPONENT 2</div>;
}
Итак, вот результат : ![enter image description here](https://i.stack.imgur.com/N7MOa.png)
Если я нажимаю nestedComponentOne : ![enter image description here](https://i.stack.imgur.com/qwftw.png)
Если я нажимаю nestedComponentTwo :
Проблема заключается в том, что я снова нажимаю nestedComponentOne (или Два) после первого щелчка мышью, маршрут добавляется в строка URL вместо ее замены:
![enter image description here](https://i.stack.imgur.com/XySzi.png)