해결된 질문
작성
·
204
·
수정됨
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
감사합니다.