클릭했을 때 동적으로 상세페이지 연결하기(Route)
리액트 라우터를 사용하면 된다.
- 라우터를 설치해줍니다. import를 해준다.
import { Route, Routes, Link, useParams } from "react-router-dom";
- App.js에서 주소를 만들어준다.
<Route
path="/profiles/:profileIdInUrl"
element={
<DetailedProfile
...
></DetailedProfile>
}
></Route>
:을 쓰면, 저 뒤에 아무거나 써도 된다. 아무거나 쓰는 데로 그 주소로 이동한다.
3. 상세페이지전 전체 엘리먼트를 갖고 있는 컴포넌트에 Link to 연결한다. 이제 클릭하는 엘리먼트의 id를 :뒤에 넣게된다.
const studentInfoMap = student.map((info, i) => (
<div key={i} className={`${info.color} profiles__profile`}>
<Link to={`/profiles/:${info.id}`}>
<p className="profiles__profile__name">{info.name}</p>
</Link>
</div>
));
- useParams로 url에서 :뒷부분을 받아온다. 이제 이 받아온 값으로 또 학생을 찾는다.
const { profileIdInUrl } = useParams();
//맨 앞에 ":"이 붙어서 첫글자를 잘랐다.
const profileId = profileIdInUrl.slice(1);
const detailedStudent = student.find((el) => el.id == profileId);
5.:뒷부분을 이용해 대상을 특정하고 렌더링 한다.
return {detailedStudent.hour};
Author And Source
이 문제에 관하여(클릭했을 때 동적으로 상세페이지 연결하기(Route)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bellecode20/클릭했을-때-동적으로-상세페이지-연결하기Route저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)