멈멈-토이프로젝트(next.js)2

좋아요 표시 하기

순9 2024. 9. 29. 21:58
728x90

컴포넌트

부모 컴포넌트 (상세 페이지)

자식 컴포넌트 ( 좋아요 버튼)

 

1. 부모 컴포넌트의 고유 id를 자식 컴포넌트로 전달

2. 자식 컴포넌트는 고유 id를 기준으로 데이터를 입력 또는 수정

 

부모에서 자식한테 전달 하는 props
<CommunityLike id={item.id} likes={likeList} />

 

//전달 받은 고유 id
const handleLike = (id: number) => {
    //새롭게 입력 될 데이터
    const requestBody = {
      mainid: numId,
      id: id,
      uuid: dataUid.uid,
      like: true,
    };

// 전달 받은 데이터 리스트에서 해당 조건에 맞는지 비교
    const userLike = likes?.find((item) => {
      if (item.uuid === dataUid.uid) {
        setMainId(item.id);
        return true;
      }
      return false;
    });

// 조건에 맞게 데이터 입력 또는 수정
    if (userLike) {
      const requestBodyEdit = {
        mainid: mainId,
        uuid: dataUid.uid,
        like: false,
      };

      try {
        fetch("/api/community-like-update", {
          method: "PUT",
          body: JSON.stringify(requestBodyEdit),
        });
      } catch (error) {
        console.log(error);
      }
    } else {
      console.log(111111111);
      try {
        fetch("/api/community-like", {
          method: "POST",
          body: JSON.stringify(requestBody),
        });
      } catch (error) {
        console.log(error);
      }
    }
  };

 

주의 해야 할 부분

1. 자식이 전달 받은 고유아디가 부모의 고유 아이디 인지 확인 할 것

2. 자식도 고유 아이디를 생성 할때 수파베이스 비교문에서 잘 전달 받는지 확인 할 것