codestates / codestates/withpuppy
[❗️Error] 12/6 최우철 redux에 순환객체를 적용하여 발생했던 문제
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
> 해결된 에러라면 라벨에 'Done'
> 미해결된 에러라면 라벨을 'Progress'
### what error
- 카카오 맵 객체를 리덕스에 저장하여 모든 컴포넌트가 사용하도록 공유시키려던 도중, 콘솔에 해당 객체에 대한 에러가 찍히기 시작함
### error message

### how to reslove
- 내용을 찾아보니, 해당 에러는 순환참조를 하고있는 객체를 json으로 바꾸는 과정에서 발생하는 에러라고 함
```js
//예시
var a = {};
var b = {};
a.b = b;
b.a = a;
JSON.stringify(a);
```
-kakao map 객체가 얼마나 많은 순환참조를 가지고 있는지는 모르는 상황이지만, 확실한 것은 이 객체를 localstorage로 저장하기 위해 json화 하는 과정에서 이러한 문제가 발생하고 있다는 것임
- flatted라는 패키지를 이용하여 순환참조에 대한 허용치를 JSON 보다 늘려줄 수 있다는 말에 따라해보았는데, 첫 데이터 업데이트때에는 괜찮았지만 그 이후 새로고침을 하는 순간 "Maximum call" 문제가 발생함
- hook으로 이용할까 생각도 해봤지만 좋지 못한 방법이었고, 이것저것 찾아보다가 공식 문서를 통해 원하지 않는 리듀서의 내용을 blacklist를 통해 분리하면 저장되지 않는다는 것을 확인함


> 교훈 = 어떤 기술을 쓸거면, 공식문서의 사용방법을 좀 정독하자 삽질하지말고
### reference
[circular](https://stackoverflow.com/questions/57906696/redux-persist-createpersistoid-error-serializing-state-typeerror-converting-ci)
[redux-persist](https://www.npmjs.com/package/redux-persist)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.