개발/React
[React] React-router-dom의 Redirect
Dev...
2022. 3. 3. 00:33
import React from 'react';
import { Switch, Route, Redirect } from 'react-router-dom';
import SignUp from '@pages/SignUp';
import LogIn from '@pages/LogIn';
const App = () => {
return (
<Switch>
<Redirect exact path="/" to="/login" />
<Route path="/login" element={<LogIn />} />
<Route path="/signup" element={<SignUp />} />
</Switch>
);
};
export default App;
export 'Switch' (imported as 'Switch') was not found in 'react-router-dom'
export 'Redirect' (imported as 'Redirect') was not found in 'react-router-dom'
Switch와 Redirect를 react-router-dom에서 찾을 수 없다는 에러가 납니다.
찾아보니 react-router-dom이 v6로 업데이트되면서 Switch와 Redirect가 사라졌습니다.
Switch 대신 Routes, Redirect 대신 Route에 Navigate를 사용하면 됩니다.
import React from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import SignUp from '@pages/SignUp';
import LogIn from '@pages/LogIn';
const App = () => {
return (
<Routes>
<Route path="/" element={<Navigate to="/login" replace />} />
<Route path="/login" element={<LogIn />} />
<Route path="/signup" element={<SignUp />} />
</Routes>
);
};
export default App;
Navigate에 replace 옵션을 주시면 원래 주소("/")가 history stack에 추가되지 않습니다.