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를 수정할수 있었던 것인가요?
답변기다리겠습니다.
감사합니다.