<BrowserRouter>
로 감싸 Router Context를 제공해야 함import React from "react";
// 필요한 모듈을 추가로 import하세요.
import {
Switch,
BrowserRouter,
Route,
useLocation,
Redirect,
Link
} from "react-router-dom";
import LoginForm from './LoginForm'
export default function UserLogin() {
return <BrowserRouter>
<Switch>
<Route exact path="/">
<HomePage/>
</Route>
<Route path="/login">
<LoginPage/>
</Route>
<Route path="/detail">
<UserDetailPage/>
</Route>
</Switch>
</BrowserRouter>
}
// HomePage 페이지 컴포넌트를 구현하세요.
function HomePage() {
// Link 컴포넌트를 추가하세요.
return (
<div>
<h2>Home Page</h2>
<div>
{ /* Link tag를 추가하세요. */ }
<Link to ="/login">Login</Link>
</div>
</div>
);
}
// LoginPage 페이지 컴포넌트를 구현하세요.
function LoginPage() {
return (
<div>
<h2>Login Page</h2>
<LoginForm />
<div>
{ /* Link tag를 추가하세요. */ }
<Link to="/">Back to home</Link>
</div>
</div>
);
}
// DetailPage 페이지 컴포넌트를 구현하세요.
function UserDetailPage() {
// email, password 정보를
// query param 으로 받아와 저장하고, 정보를 보여주세요.
const location = useLocation();
const searchParams = new URLSearchParams(location.search);
const email = searchParams.get('email');
const password = searchParams.get('password');
if (!email || !password) {
return <Redirect to="/login" />
}
return (
<div>
<h2>User Detail Page</h2>
<p>
<h3>User details</h3>
<em>{email}</em>
<br />
<strong>{password}</strong>
</p>
{ /* Link tag를 추가하세요. */ }
<Link to="/login">Logout</Link>
</div>
);
}
여기서 각 custom component를 통해 Link 태그(a태그)로 화면을 구성 및 Link태그를 누르면 어디로 갈것인가를 설정하고, Route 태그의 path로 그 어디로갈것인가의 주소를 받아 실제로 이동시킨다.