s e o p p o r t . l o g

Today I Learned

2024.01.31 TIL

Seo Ji Won 2024. 1. 31. 20:57

 

router, param으로 동적 페이지 이동하기

<Route
          path="details/:id"
          element={<LetterDetailPage savedLetters={savedLetters} />}
        />

/: 뒤에 값을 지정하면 슬래쉬 어떤 값이 들어오든 details 라는 하위페이지로 이동하게 된다.

id라고 적어주는 값은 슬래쉬 뒤에 들어온 값을 id로 지칭하겠다는 의미이다.

<ViewDetails onClick={() => navigate(`/details/${item.id}`)}>상세보기</ViewDetails>

그런 다음 details 페이지로 넘어가는 버튼(링크) 역할을 하는 요소에 navigate를 줄때 param 부분에 요소의 id값을 가지고 넘어가도록 작성하면

하위페이지

하위페이지에서는 이런식으로 주소가 설정된다.

const param = useParams();

따라서 하위페이지에서는 id라고 지칭한 부분을 usePrams를 통해 받아옴으로써 클릭한 요소의 id값을 알 수 있다.

 

//클릭한 요소만 출력되게
{savedLetters.filter((item) => item.id === param.id)

그 후에 저장된 데이터 배열들과 param의 id값을 비교하여 클릭한 요소의 데이터만 출력하는 등 원하는대로 데이터를 가공하여 사용할 수 있다.

 


redux 이해하기

dispatch(minusNum(number))

dispatch에 number라는 payload를 넘겨주고

 

export const plusNum = (payload) => {
  return {
    type: PLUS_NUM,
    payload,
  };
};

action creator에서 payload를 지정해준다.

 

case PLUS_NUM:
      return {
        ...state,
        globalNumber: state.globalNumber + action.payload,
        //payload로 app.jsx의 값 받아오기
      };

리듀서에서 받아온 payload의 값을 활용할 수 있다.

 

주의. useDispatch나 useSelector는 react-redux에서 import해야한다.

import { useDispatch } from 'react-redux';

'Today I Learned' 카테고리의 다른 글

2024.02.02 TIL  (0) 2024.02.05
2024.02.01 TIL  (0) 2024.02.01
2024.01.30 TIL  (0) 2024.01.30
2024.01.29 TIL  (0) 2024.01.29
2024.01.26 TIL  (0) 2024.01.26