본문 바로가기
[항해99] TIL

27일차 (react-router-dom :outlet)

by @kkkk_biiin 2023. 9. 14.
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