-
[TIL] useNavigate , replace : 브라우저 히스토리 제거이노베이션-실전플젝 2023. 8. 16. 11:30
* 문제 상황
: 몇몇 페이지에 "프로텍티드 라우터"를 적용하여 로그인을 안 한 유저는 url로 접근이 불가능하도록 막았다.
: 즉, 순서가
Ex. 커뮤니티 글 작성 페이지 -> 로그인이 안되어 있으므로 로그인 페이지로 이동
이 되는 건데,
맞딱뜨린 로그인 페이지에서 "뒤로 가기"를 눌러도 "커뮤니티 글 작성 페이지"로 돌아가기 때문에 생각한 뒤로 가지 않아지는 상황이 발생한다
* 해결방법
: useNavigate 의 replace
return sub ? <Outlet/> : <Navigate to={"/login"} replace={true}/>
: 프로텍티드 라우터에 replace를 넣었다
: 즉, sub(로그인유무판단변수)가 true이면, 사용자가 입장하려고 하는 <Outlet />으로 보내주면 되고, 아닐시 {"/login"} 으로 보내주면 된다.
: 이 때, login 페이지에 replace={true} 를 주면, 이렇게 연결되는 부분은 브라우저의 히스토리에 기록이 되지 않는다.
: 그래서 로그인페이지에서 뒤로 가기를 누르면? 사용자가 생각하는 전의 페이지로 넘어갈 수 있게 된다
'이노베이션-실전플젝' 카테고리의 다른 글
[TIL] React Develop Tools 사용 (0) 2023.08.18 [TIL] Ts : setState의 타입은 뭘까? (0) 2023.08.16 [TIL] Grid 사용 (0) 2023.08.01 [TIL] 함수 커링, hook, Blob 및 회고 (0) 2023.08.01