Redirect
는react-router-dom
에서import
해서 사용 합니다.Redirect
컴포넌트는 랜더링되면to
로 지정된 경로로 이동 합니다.
App.js
import { BrowserRouter, Route, Switch } from "react-router-dom" import Home from "./pages/Home" import Profile from "./pages/Profile" import About from "./pages/About" import NotFound from "./pages/NotFound" import Links from "./components/Links" import NavLinks from "./components/NavLinks" import Login from "./pages/Login" import { Redirect } from "react-router-dom" const isLogin = true function App() { return ( <BrowserRouter> <Links /> <NavLinks /> <Switch> <Route path="/login" render={() => (isLogin ? <Redirect to="/" /> : <Login />)} /> <Route path="/profile/:id" component={Profile} /> <Route path="/profile" component={Profile} /> <Route path="/about" component={About} /> <Route path="/" exact component={Home} /> <Route component={NotFound} /> </Switch> </BrowserRouter> ) } export default App
Route
컴포넌트에서는component
속성 말고도render
속성을 사용해서 페이지 이동할 수 있습니다.render
속성의isLogin
값이true
이면/
경로로 이동하고false
면/login
경로로 이동 합니다.
실행결과
isLogin
값이true
일 때
http://localhost:3000/login
=>http://localhost:3000
/
(Home
) 페이지로 이동 합니다.
isLogin
값이false
일 때
http://localhost:3000/login
/login
페이지로 이동 합니다.