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

home2 게시판 React 게시판 최근 본 페이지 구현하는데 여쭤볼게 있습니다.

최근 본 페이지 구현하는데 여쭤볼게 있습니다.

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

    손승우
    참가자
    https://codingapple.com/forums/topic/%ec%b5%9c%ea%b7%bc-%eb%b3%b8-%ec%83%81%ed%92%88%ec%9d%b4-%ec%83%88%eb%a1%9c%ea%b3%a0%ec%b9%a8%ed%95%98%eb%a9%b4-%ec%82%ac%eb%9d%bc%ec%a0%b8%ec%9a%94/
    이분과 같은 상황입니다.
    App.js
    function App() { useEffect(()=>{ localStorage.setItem('watched', JSON.stringify( [] )) },[]) }
    
    이렇게 작성하니까, 위코드 때문인지 url 바뀔때 마다, watched가 초기화 되더라구요.
    그래서 아래와 같이 수정하니 해결됐습니다.
    App.js
    useEffect(() => {
        const viewed = localStorage.getItem('watched');
        if (!watched) {
          localStorage.setItem('viewed', JSON.stringify([]));
        }
      }, []);
    
    그래서 여쭤보고 싶은것이 두가지 있습니다.
    
    1. 저는 조건문을 작성해야만, watched 가 초기화가 되지 않은데
    선생님은 왜 조건문을 작성하지 않아도 초기화가 되지 않는 것인가요?
    
    2. 그리고 만약
    function App() { useEffect(()=>{ localStorage.setItem('watched', JSON.stringify( [] )) },[]) }
    이 코드가 watched를 초기화 시켰던 것이면,
    어떻게 watched를 getItem으로 꺼내오지 않고도 watched를 수정할수 있었던 것인가요?
    
    답변기다리겠습니다.
    감사합니다.
    
    
     
    #112697

    codingapple
    키 마스터
    조건문없으면 새로고침시 계속 초기화될걸요
    .setItem('watched' 는 기존에 'watched' 값이 있으면 덮어씌워줍니다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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