본문 바로가기

TIL✨

parameter_TIL(42)

1.내가 만난 문제

map을 돌려서 받은 list들을 item.id와 내가 선택한 그 하나의 값 id을 비교하다가 갑자기 막혔다.

모든 list들이 다 id와 일치한다고 나왔다.

코드로 보자면 4번줄에 해당한다.

const modalHandle = (id, password) => {
        selectedComments?.map((item) => {
            console.log(item);
            return id === item.id ? setModalOpen(true) : console.log("안 켜짐");
        });
        document.body.style.overflow = "hidden"; // 모달창 오픈 시 배경 스크롤 비활성화
    };

2.시도

 1) 먼저 console.log()로 모든 props들의 값들을 찍어봤다.

     근데 자꾸 비교하는 값 (id) 이 undefined 였다.

 2) 상위 컴포넌트에서 받아 온 props(selectedComment)와 item.id를 비교했다.

 ❓생각이 짧았다. props로 가지고 온 id와 돌고있는 Id가 일치한 값만 가져온다고 생각했다.

   ✅ 이렇게 되면 결국에 똑같은 값들을 서로 비교하니까 다 id가 일치한다고 나온다.

 

3.해결

modalHandle을 실행하는 버튼에 값을 주어야한다.

  <RiDeleteBinLine  onClick={() => {
        return modalHandle(item.id, item.password);}}    //여기
            style={{ursor: "pointer",marginLeft: "15px", float: "right",}}
      />

 이렇게 값을 주면 댓글리스트를 map을 돌리면서 버튼을 생성하므로 그때 마다 생성된 id값이 위의 item.id와 일치한지

 비교를 해야한다. 그래서 파라미터로 전달을 해줘야한다.

 

4.깨달은점

 :자바스크립트 기본 개념을 놓치지말고 꾸준히 공부하자. 파라미터로 data값을 전달하는 것을 이번에 확실히 알았다.

  이번과 같은 기능구현을 한다면 전보다 더 잘 할 수 있을 꺼같다.

  리액트는 할 수록 자바스크립트의 문법들이 탄탄하면 기능을 잘 구현 할 수 있겠다라는 생각이 들었다.

😎 

 

 

'TIL✨' 카테고리의 다른 글

리액트 네이티브_TIL(45)  (0) 2023.01.01
iterable error _TIL(44)  (0) 2022.12.29
TIL(41)  (0) 2022.12.26
글 작성페이지 input 나누기 TIL(39)  (0) 2022.12.23
React-router_TIL(37)  (0) 2022.12.20