728x90
outlet은 children과 같다고 보면 된다.
하위 라우터를 감싸는 상위 라우터에서 하위 컴포넌트를 출력하고 싶은 위치에 <Outlet/>을 넣어주면 된다.
import React from "react";
import { Outlet, useNavigate } from "react-router-dom";
function Main() {
const navigate = useNavigate();
const logoutBtn = () => {
navigate("/");
};
return (
<div>
<header>
<p>🏠</p>
<button onClick={logoutBtn}>로그아웃</button>
<hr />
</header>
<Outlet />
</div>
);
}
export default Main;
그리고 Router.js 페이지에서 상위 Route 안쪽으로 감싸주기만 하면 된다.
<BrowserRouter>
<Routes>
<Route path="/main/:id" element={<Main />}>
<Route path="home" element={<Home />}></Route>
<Route path="todolist" element={<TodoList />}></Route>
</Route>
</Routes>
</BrowserRouter>
728x90
'[항해99] TIL' 카테고리의 다른 글
6주차 WIL (Axios) (0) | 2023.09.18 |
---|---|
28일차 (알고리즘: stack 활용) (0) | 2023.09.15 |
26일차 (react-Cookie) (0) | 2023.09.12 |
25일차 (useQueries) (0) | 2023.09.11 |
5주차 WIL (React Hook) (0) | 2023.09.10 |