react-router-dom v6 기준으로 작성되었습니다.
부모와 자식 관계가 아닌, 페이지 이동 시에 데이터를 전달하는 방법에 대해 알아보자.
페이지에서 useNavigate()
로 값을 전달하고, 새로운 페이지에서 useLocation()
으로 값을 받아오면 된다.
useNavigate()
navigate
)에 useNavigate()
를 초기화navigate("/페이지 주소", { state: { 키: 값 } } )
의 형태로 작성클릭하면 /newpage
라는 주소로 이동하면서 data1
, data2
를 보내는 함수를 작성해보자.
import { useNavigate } from "react-router-dom";
const navigate = useNavigate();
const clicked = () => {
navigate("/newpage", { state: { data1: 1234, data2: 4567 } });
};
useLocation()
useLocation()
을 객체(location
)에 초기화객체.state.키
의 형태로 값을 가져온다.앞에서 전달한 data1
, data2
를 변수에 할당해보자.
import { useLocation } from "react-router-dom";
const location = useLocation();
const number1 = location.state.data1;
const number2 = location.state.data2;