• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 localStorage로 만드는 최근 본 상품 기능 2 응용문제

localStorage로 만드는 최근 본 상품 기능 2 응용문제

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #49019

    이태원
    참가자
    안녕하세요 선생님 응용문제 질문이 있어 글을 남깁니다.
    
    새로고침이 되었을 떄 localstorage.setItem을 하지 않도록 코드를 짜는데 잘 안되네요..
    
     useEffect(() => {
        if (JSON.parse(localStorage.getItem("watched")) == []) {
          localStorage.setItem("watched", JSON.stringify([]));
        }
    이렇게 코드를 짜고 watched 를 지우고 detail 페이지로 넘어가니 안되더라구요.. 저 if문 이전에 setItem을 한번 더 써야하는건가요..?
    
    
    #49057

    codingapple
    키 마스터
    자바스크립트에서 [] == [] 이렇게 비교하면 안됩니다
    #49247

    이태원
    참가자
    안녕하세요 선생님 선생님의 조언으로 다르게 조건을 넣어보았습니다.
    
    useEffect(() => {
        if (JSON.parse(localStorage.getItem("watched")).length == 0) {
          localStorage.setItem("watched", JSON.stringify([]));
        }
      }, []);
    저렇게 조건을 놓았을 떄 watched 라는 localstorage가 있다는 전제하에는 문제 없는 코드가 되지만 watched 를 지우고 실행했을 때는 코드가 정상적이지 않습니다.
    
    저 조건에 배열의 존재유무를 추가하여 확인해보고 싶은데 구글링해도 나오질 않네요.. 혹시 배열의 존재유무를 판별할 수 있는 조건문이 있을까요..? 아니면 웹을 처음 켰을 떄만 localStorage.setItem("watched", JSON.stringify([]));이 부분을 실행시킬 수 있는 방법이 있을까요..?
    
    감사합니다.
    #49291

    codingapple
    키 마스터
    localStorage.getItem("watched") 이게 1. null일 때 2. [] 일 때 처리해주는 if문을 각각 만들면 되겠군요
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠