인프런 커뮤니티 질문&답변
강사님 질문이 있어요
해결된 질문
작성
·
234
·
수정됨
1
serializableCheck: {
ignoredActions: [
REHYDRATE,
FLUSH,
PAUSE,
PERSIST,
PURGE,
REGISTER,
],
},강사님 마지막 실습 코드에서 질문드려요
여기 코드는 검색을 하니 직렬화,역질렬화 검사 할때 사용 하는거라는데 마지막 실습 코드에서는 어떻게 사용 되는 건가요? 어떤 연관성? 이 있는 건가요?
답변 1
0
안녕하세요, 소플입니다.
해당 Action들은 redux-persist에서 데이터를 저장하고 복원하기 위해서 내부적으로 사용하는 Action들 입니다.
기본적으로 Redux State 또는 Action에는 Serialize 가능한 데이터만을 넣어야 하는데,
그렇지 않은 경우를 방지하기 위해서 Serialize 가능한지 체크(serializableCheck)를 하게 됩니다.
https://redux.js.org/style-guide/#do-not-put-non-serializable-values-in-state-or-actions
이 때 redux-persist의 Action들에 대해서도 serializableCheck를 하게 되는데,redux-persist의 Action에는 내부적으로 Non-Serializable value(예: 함수)가 포함되어 있습니다.
그래서 redux-toolkit과 redux-persist를 연동해서 정상적으로 사용하려면,
아래 공식 문서에 나와 있는 것처럼 redux-persist의 내부 Action들을 모두 serializableCheck하지 않도록 ignoredActions에 넣어주어야 하는 것입니다.
https://redux-toolkit.js.org/usage/usage-guide#use-with-redux-persist
참고로 아래 링크는 해당 이슈와 관련된 과거 GitHub 이슈들입니다.
관심있으시면 추가로 살펴보시면 이해하는데 더 도움이 될 것입니다😀
https://github.com/reduxjs/redux-toolkit/issues/121
https://github.com/rt2zz/redux-persist/issues/988#issuecomment-552242978
감사합니다.





