혼자 적어보는 노트

[React] useParams 활용 본문

React

[React] useParams 활용

jinist 2021. 11. 9. 04:10

useParams

react-router-dom의 hook인 useParams를 사용하면 
컴포넌트에 전달받은 URL Parameter를 받아올 수 있다.

 

import { useParams } from 'react-router';

상단에 import 한 후 

 

let { id } = useParams();

component 내부에서 위와 같이 선언해주면 /:id값에 넣은 내용을 받아올 수 있다.

 

 

array 안에서 params로 받은 id값과 일치하는 자료를 찾아
그 자료안에서의 데이터를 활용하고 싶다면 어떻게 해야할까?

 

url의 params에 맞는 데이터 사용하기

let user = [
    {
      id : 0,
      name : "Jay",
      age : 28,
      job : "Student",
    },
    {
      id : 1,
      name : "Jun",
      age : 25,
      job : "Student",
    },
    {
      id : 2,
      name : "Harry",
      age : 31,
      job : "Student",
    }
  ]

예를들어 상위 컴포넌트에 이러한 user 데이터를 받고있다고 가정해보자.

하위 컴포넌트에 Route와 함께 user 데이터를 전송해 준 후

user/1 으로 주소 입력 시 해당 id에 맞는 정보를 보여주고 싶다면?

 

import { useParams } from 'react-router';

function Profile(props){
    let { id } = useParams();
    const data = props.user.find(item=> item.id == id);
    return(
      <div>
        <h1>{data.name}</h1>
        <p>{date.age}</p>
        <p>{date.job}</p>
      </div> 
    )
}

상위 컴포넌트에서 전달 받은 props.user를 find()하여

params의 id값과 맞는 데이터를 찾은 후 사용하면 된다.

 

실제 개발 시에는 0인 상품 데이터를 Ajax로 요청해서 사용하자

'React' 카테고리의 다른 글

[React] useContext hook  (0) 2021.11.16
[React] useEffect hook  (0) 2021.11.12
[React] input의 상태 관리  (0) 2021.11.04
[React] 삼항연산자를 사용한 클릭 이벤트  (0) 2021.11.03
[React] useState 사용  (0) 2021.11.02
Comments