inflearn logo
강의

Course

Instructor

[2025] React Native App Development Masterclass for Non-majors

[Development] Store Settings

'register' value관련 에러

Resolved

64

rlafkdud12287286

22 asked

0

image.png

이 에러는 무슨 에러인가요?

javascript react node.js react-native typescript

Answer 2

0

junghw

Ai 인턴의 말과 같이 Redux persist을 사용할때 나오는 직렬화 에러입니다.

간단히 말해 redux가 읽는 값을 직렬 형태로 놓으라는 말인데요, 사실 이런 개념으로 코딩테스트를 보는게 아니라면 굳이 자세히 알 필요는 없다고 생각합니다.

아래는 strore 변수 코드입니다.

configureStore의 middleware 속성을 넣은 후 seializableCheck이라는 속성을 false로 두어 직렬화 검사를 중지하면 됩니다. (성능에는 문제 없습니다.)

물론 값을 직렬화해서 넣는 것을 권장하고 있긴 하지만, 어차피 redux persist는 이런 간단한 예제에서 쓰이는 것으로 배운 것이고(그래서 직렬화 값을 넣고 안넣고 차이가 없습니다.), 나중에 mmkv만을 사용해서 코인앱을 구성하기 때문에 아래의 코드로 바꿔주면 에러가 없어지는 것을 확인할 수 있습니다.

export const store = configureStore({
  reducer: {counter: persistedReducer},
  middleware: getDefaultMiddleware =>
    getDefaultMiddleware({
      serializableCheck: false,
    }),
});

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 김라영님.

발생한 에러는 Redux Toolkit을 사용할 때 흔히 발생할 수 있는 “non-serializable value” 에러입니다. 이는 Redux의 상태나 action 객체에 함수와 같은 직렬화할 수 없는 값이 포함되었을 때 발생할 수 있습니다. Redux는 상태 관리 라이브러리로, 상태를 직렬화 가능한 형태로 유지하려고 합니다. 그렇기 때문에, 상태나 action에 직렬화할 수 없는 값이 포함되면 이러한 경고 메시지가 표시될 수 있습니다.

에러의 원인 및 해결 방법

  1. 직렬화 여부 확인:

    • 상태나 action 객체에 포함된 값이 직렬화될 수 있는 타입인지 확인해 보셔야 합니다. 일반적으로 JSON 형태로 직렬화할 수 있는 값들은 문제가 없습니다. 하지만, 함수, DOM요소, 특수 객체 등이 포함되면 위와 같은 에러가 발생합니다.
  2. Redux Toolkit에서의 설정:

    • configureStore를 사용할 때, serializableCheck 옵션을 끌 수 있습니다. 다만, 이는 문제가 될 수 있는 부분을 미연에 방지할 수 없게 하므로 최후의 수단으로 사용하는 것이 좋습니다.
   import { configureStore } from '@reduxjs/toolkit';
   
   const store = configureStore({
     reducer: rootReducer,
     middleware: (getDefaultMiddleware) =>
       getDefaultMiddleware({
         serializableCheck: false,
       }),
   });
  1. 함수가 포함된 경우 관련 코드 수정:
    • 객체나 상태에 직접 함수를 할당한 경우, 상태나 action에 포함하지 않도록 구조를 변경해야 합니다. 상태는 순수한 데이터 형태로 관리되도록 신경 쓰셔야 합니다.

관련 문제 토론

위와 유사한 문제가 토론된 내용들을 참고할 수 있습니다:

  1. expo로 설치해도 되나요?
    • 내용 요약: 직렬화 문제를 포함한 다양한 설정 이슈들이 다뤄집니다.

김라영님의 문제 해결에 도움이 되길 바라며, 추가적인 질문이 있으시면 언제든 질문해 주시기 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

앱 빌드 문의드립니다.

0

119

3

Bottom tabs navigator 설정

0

95

2

splash screen 화면이 안띄워져요.

0

196

2

sunriseData 코드

0

58

2

소유권을 확인할 수 없습니다.

0

176

2

stylecomponents 오류

0

311

3

4-3 UI 구성하기 화면

0

99

2

Mac Os / npx eas build --platform android --profile development 질문

0

156

2

npx expo start하면 왜 실행이안될까요?

0

363

2

안드로이드 구글 로그인 에러

0

379

4

MMKV 사용시 에뮬레이터에서 실행이 불가능한 이슈

0

227

4

App.tsx에서 Icon을 못가지고 오는 오류..('VectorIcons' could not be found ~)

0

171

3

iOS설정에 오류가 있는 것 같습니닷,,(info.plist 설정 오류)

0

321

2

안드로이드 스플래시 및 AppIcon설정 전체 과정 및 관련 질문

0

257

2

iOS에서 splash screen설정 오류

0

201

2

가상 시뮬레이터 실행

1

169

2

num 타입관련해서 문의드립니다

1

95

2

npx expo start 오류건...

0

304

3

명령 npx eas build --platform android --profile development 시 오류...

0

220

2

macOS개발환경 세팅

0

138

2

섹션7. 4강 5분 57초부터 api.json

0

98

2

섹션5. 날씨 앱 expo 버전

2

88

1

섹션4. 번역기 앱 expo 버전?!

1

140

2

계산기 앱 착오를 거친 수정버전

2

178

2