티스토리 뷰
1. [React] 리액트 localStorage를 활용해서 페이지데이터 유지하기
프로젝트를 진행하던 중, 게시글 작성 페이지에서 데이터 유지관련하여 문제가 있었다.
게시글 작성 페이지가 4개로 나뉘어져 있는데, 페이지를 이동할 때 페이지가 재렌더링이 되어 입력된 데이터가 초기화 되는 것이 문제였다..
페이지 이동시에도 데이터가 유지될 수 있는 방법을 찾던 중, 로컬 스토리지를 알게 되었고 이를 활용해서 문제를 해결 할 수 있었다 !
문제를 해결하기 위해 사용한 코드와 관련 자료를 남긴다.
/// useEffect와 watch를 활용해 데이터 값이 바뀔때 마다 localStorage에 데이터를 저장해 주었다.
const { register, watch, setValue } = useForm();
useEffect(() => {
const subscription = watch((value) => {
localStorage.setItem('source', JSON.stringify(value));
});
}, [watch]);
// 페이지가 처음 렌더링 될때, 로컬스토리지에서 값을 가져옵니다.
useEffect(() => {
if (localStorage.getItem('source')) {
const getSource = JSON.parse(localStorage.getItem('source'));
SourceList.forEach((el, idx) => {
setValue(`source_${idx + 1}`, eval(`getSource.source_${idx + 1}`));
});
SourceList.forEach((el, idx) => {
setValue(`volume_${idx + 1}`, eval(`getSource.volume_${idx + 1}`));
});
}
}, []);
eval 함수는 보안적이슈때문에 사용하는걸 지양해야한다는 말이 많은 것 같아.. 대체 방법을 찾아봐야 할 것 같다.. !
2. 관련 링크
[ localStorage 사용방법 ]
https://developer.mozilla.org/ko/docs/Web/API/Window/localStorage
'개발일기 > REACT' 카테고리의 다른 글
[React] useMemo 사용이유와 코드예시 (0) | 2022.02.23 |
---|---|
[REACT] REACT Formdata에 이미지파일 여러개 넣기 (0) | 2022.02.20 |
[React] React Hooks - useEffect() 를 활용한 렌더링 관리. (0) | 2022.02.19 |
[React] React, HTML 에서 dataset을 활용해 Dom요소에 값 저장하기 (0) | 2022.02.19 |
[React] 리액트 React-Hook-Form (0) | 2022.02.19 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- cbt
- TypeScript
- 전력공학
- dummydata
- KEC반영
- fakerjs
- 산안기 합격률
- React
- 개더타운
- 전기기기
- 전기기사
- nextjs
- TS
- 전기기사실기단답
- 산업안전기사 실기
- 게더타운
- zep
- JavaScript
- 실기CBT
- shortid
- 전기기사 필기
- 전기공사기사
- 모두CBT
- 전기산업기사
- 전기기사필기
- 전자기학
- 게더타운맵
- 전기기사실기CBT
- 산업안전기사
- gathertown
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함