[Redux] Serialize(직렬화)

보윤이의 기술 블로그·2022년 10월 11일
1

React

목록 보기
18/18
post-thumbnail

Serialize(직렬화)

  • 예시) localstorage 는 값으로 string 가능, object 불가능
    이때 json.stringify 를 통해 object > string ! 이것이 직렬화
    ↔ json.parse (string > object)
  • Redux에서는 function, promise 등과 같은 non-serializable type 저장 불가능
    • 실제로는 저장 되지만, redux-devtools 에서 표시를 안함
    • Redux 의 핵심 사용 원칙 중 하나
      • 직렬화할 수 없는 값을 state, action 에 넣지 말아야 함
    • 이를 지키지 않으면 다음과 같은 에러 메세지가 뜸

      A non-serializable value was detected in an action, in the path: type

      • Redux Toolkit 에서 자동으로 생성해주는 action 객체가 action 생성자 함수 형태이기 때문
      • type 의 인자로 string 값이 전달되지 않고 함수가 전달되어 발생한 오류
    • 하지만 직렬화할 수 없는 데이터를 수락해야 하는 작업을 처리해야 하는 경우가 있을 수 있음
      • 매우 드물게 필요한 경우에만 수행되어야 하며,
        불가피할 경우 아래와 같이 미들웨어를 추가하여 해결하는 방법도 존재

        const store = configureStore({
          reducer: rootReducer,
          middleware: (getDefaultMiddleware) =>
            getDefaultMiddleware({
              serializableCheck: false,
            }),
        });
profile
어제보다 오늘 더 성장하는 프론트엔드 개발자

0개의 댓글