03. 08 useNavigate

홍왕열·2023년 5월 30일
0

업무

목록 보기
4/4

useNavigate

처음으로 아예 처음부터 만드는 project 중 생긴 issue.

만약 클릭 시 정보를 가지고 페이지를 전화하려면 예전에는 useHistory를 썻으나, 이제는 navigate로 전환이 되었다.

// function
   const handleDbClickRow = (el) => {
        console.log(el);
        navigate(`/viewer/${el.attributes.uuid}`);
    };

// paths
    viewer: '/viewer/:id',

// route
    <Route path={paths.viewer} element={<Viewer />} />

Props

첫 번째 인자로 내가 이동할 주소를 받고 두 번째 인자로 {replace, state}인수를 사용한다.
replace (true or false)
-true를 쓰면 이동할 주소로 이동한후 뒤로가기가 안된다. 뒤로가기를 누르면 메인페이지("/")로 돌아가게된다.

false를 누르면 뒤로가기가 가능한데 이게 기본값이기 때문에 굳이 미리 넣을 필요는 없음.

state 넘겨주는 방법

navigate(`/examination/${diagnosis.id}`, {
                            state: {
                              filterOption: {
                                selectedDoctor,
                                selectedPatient,
                                typedPatient,
                                dateFilter,
                                startDateTime: startDateTime
                                  ?.toDate()
                                  .getTime(),
                                endDateTime: endDateTime?.toDate().getTime(),
                              },
                            },
                          });
                          

state를 받을 때는 useLocation() 훅을 이용해 취득할 수 있다.

const { state } = useLocation();
profile
코딩 일기장

0개의 댓글