컴포넌트를 통해서만 prop이 전달되는 줄 알았는데, 이야기하다보니 `useNavigate`를 통해서도 prop을 전달할 수 있을 것 같아 검색해보니 가능한 일이었다!
import { useNavigate } from 'react-router-dom';
const CurrentPage () => {
...
const navigate = useNavigate();
navigate('/otherpage',{state:<전달하고 싶은 prop object>})
...
}
위 코드처럼 하면 `react-router-dom`에 의해 연결된 component에서 `useLocation`을 이용해서 prop을 받을 수 있다.
예를 들어 `name`과 `year`를 prop으로 넘기고 싶다면 아래와 같이 작성하면 된다.
navigate('/otherpage', {state:{name:'React', year:2024}});
그러면 `navigate`로 이동한 컴포넌트에서 아래처럼 prop을 받을 수 있다.
// /otherpage 컴포넌트
import { useLocation } from 'react-router-dom';
const OtherPage() => {
...
const {state:{name, year}} = useLocation(); // 구조 분해 할당
...
}
'Frontend > Today I Learned' 카테고리의 다른 글
[CSS] position : fixed, sticky와 width:inherit (1) | 2024.09.02 |
---|---|
[JS, supabase] 데이터 저장하고 불러오기 (0) | 2024.08.30 |
[React] Hooks - useContext, memoization (0) | 2024.08.26 |
[JS, redux] Redux Toolkit 기본 사용법 (0) | 2024.08.26 |
[JS] 이벤트 겹쳤을 때 막는 방법 (+ 이벤트 캡처링, 버블링) (0) | 2024.08.23 |