FrontEnd/React

[React] 페이지 이동시, 파라미터 전달 및 취득 방법

검정색필통 2023. 2. 20. 17:56

1. useNavigate를 사용하여 state로 전달

[ 이동 전 페이지 ]

const navigate = useNavigate();
navigate('/home', {state:{id: 1, name: 'test'}});

경로로 이동하면서 파라미터로 state의 id, name을 넘긴다.

 

[ /home으로 이동 후 ]

const location = useLocation();
const state = location.state as { id: number; name: string };
const id = state.id;
const name = state.name;

useLocation 훅을 이용하여 location.state로 id, name 인자를 전달 받는다.

state의 타입 값이 unknown이기 때문에 위와 같이 타입을 정의해 준다.

 

2. get 방식으로 전달 되는 쿼리 파라미터

const locationLogin = useLocation();
const searchParams = new URLSearchParams(locationLogin.search);
const userId = searchParams.get('user_id');

- useLocation()으로 search 값을 획득한다.

- search 속성의 값을 URLSearchParams 객체로 생성한다.

- 키의 해당하는 값을 get으로 반환받는다.

 

3. location.href/reload/assign 으로 전달 되는 parameter

// button
onClick={() => location.assign(`/menu/team/${teamId}`)}

// main.tsx
{
	path: 'menu/team/:teamId',
	element: <MyTeamDetailPage />,
},

// teamMatchDetail.tsx
const { teamId } = useParams();

- useParams로 해당하는 :teamId에 해당하는 파라미터를 전달받는다.