스파르타 (React_6기) 본캠프

2024. 09. 22.(팀프로젝트 - 아웃소싱03)

cha123hein 2024. 9. 23. 04:55

1.  문제점

DB.json에 새로운 데이터 넣는 부분이 어려웠다. json-server를 사용하여 약국 데이터를 관리하고 있었는데, 평소에는 이미 입력된 데이터 값에서 불러오거나 기본틀이 있던 중에 추가를 해보다보니 새로운 데이터를 넣는데 어려움을 겪었다.


2. 해결을 위한 방안

처음에는 json에 저장도 안되고 데이터 형식에 문제가 있어 못불러온다는 오류가 계속 떠 일일히 기본적인 틀을 이 자료들에 다 추가를 하고 난 다음에 거기에 데이터를 입력해야하나 고민을 하다. 아예 객체형식으로 추가를 시키면 문제가 해결되겠다는 생각을 하게되었다.

 

3. 해결코드

//댓글 삽입을 위한 코드
const handleAddComment = async () => {
    if (!userId) {
      alert('로그인 후 댓글을 작성할 수 있습니다.');
      return;
    }

    if (!newComment.trim()) {
      alert('댓글 내용을 입력하세요.');
      return;
    }

    const comment = {
      id: Date.now(),
      userId,
      nickname,
      content: newComment,
      createdAt: new Date().toISOString()
    };

    try {
      const updatedComments = pharmacy.comments ? [...pharmacy.comments, comment] : [comment];
      await api.patch(`/pharmacies/${id}`, { comments: updatedComments });
      setPharmacy((prev) => ({ ...prev, comments: updatedComments }));
      setNewComment('');
    } catch (error) {
      console.error('댓글 추가 실패:', error);
    }
  };