개발자

로컬스토리지 데이터 변환 감지

2024년 12월 21일조회 70

리액트에서 로컬스토리지에 데이터가 변환되는걸 감지하여 쿼리 데이터를 무효화하고 싶은데, 좋은 방법이 있나요,,

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

포크코딩님의 프로필 사진

최상단 루트 컴포넌트에 polling 역할을 하는 컴포넌트를 하나 끼워 두세요

profile picture

익명

작성자

2024년 12월 23일

헉 감사합니다! 해보겠습니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 12월 21일

리액트에서 로컬스토리지의 변화를 감지하기 위해서는 별도의 라이브러리가 필요하나, useState와 useEffect를 활용하면 쉽게 해결할 수 있습니다. 로컬 스토리지에 저장된 데이터의 변경을 감지하려면 아래와 같은 Hook을 사용해 보세요: ```jsx import { useState, useEffect } from 'react'; function useLocalStorage(key, initialValue) { const [storedValue, setStoredValue] = useState(() => { try { const item = window.localStorage.getItem(key); return item ? JSON.parse(item) : initialValue; } catch (error) { console.log(error); return initialValue; } }); useEffect(() => { try { const serializedValue = JSON.stringify(storedValue); window.localStorage.setItem(key, serializedValue); } catch (error) { console.log(error); } }, [key, storedValue]); return [storedValue, setStoredValue]; } ``` 위 코드에서는 localStorage 값이 변경될 때마다 setStoredValue 함수를 호출하여 상태 업데이트를 트리거합니다. 이렇게하면 리액트 컴포넌트는 자동으로 재랜더링되고 이로 인해 쿼리 데이터가 무효화됩니다. 이 함수를 사용하는 방법은 다음과 같습니다: ```jsx const [value, setValue] = useLocalStorage('my-key', 'initial value'); ``` 기존 localStorage getItem 및 setItem 메서드를 대체하는 방식으로 사용하면 됩니다. 이렇게 하면, 컴포넌트 내에서 로컬 스토리지 값의 변경을 감지하고 상태를 업데이트 할 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!