[내배캠] 5/7 16일차

초이·2024년 5월 7일
0

🗓️ 내일배움캠프

목록 보기
16/55
post-thumbnail

오늘 create 부분을 거의 99% 완성 시켰다.

input에 넣은 value들을 받아와서 객체를 배열에 저장하게 되었는데 문제가 발생했다.

우선 localStorage에는 모든 리뷰데이터를 reviews에 넣기로 해서 아래와 같이 코드를 짰다.

let reviewStorage = [];
const saveReview = () => {
  const review = {
    id: Date.now(), //id 값 추가
    movieId: localStorage.getItem("currentID"),
    name: userName.value,
    comment: comment.value,
    star: Checked,
    password: passwordInput.value,
  };

  reviewStorage.push(review); //배열에 review값 넣기
};

하지만 이렇게 작성한 localStorage는 페이지를 나갔다 들어오는 둥 리로드하면 하시 reviewStorage가 초기화가 되었다.

왜?

이유야 간단하다.. 다시 reviewStorage가 빈 배열로 초기화되기 때문이다.
해결 방법도 간단하다. 이태까지 저장한 객체의 배열을 다시 넣어준 뒤 새로운 값을 저장하면 된다.

해결!

const totalreviews = JSON.parse(localStorage.getItem("reviews"));
reviewStorage = totalreviews;

이 두줄만 saveReview 에 넣어주면 totalreview에 저장된 배열을 넣고
그걸 reviewStorage에 옮겨주면..(생각해보니까 그냥 다이렉트로 해도되는거였네)

원래 있던 review들이 저장이 되면서 잘 작동하는 것을 알 수 있다.

요번 프로젝트를 하면서는 정말 초기화와 작동의 경계를 알아가는 단계같다.

profile
개발 일기장

0개의 댓글