사실 구현은 했지만,
지금 코드를 보면 아주 지저분하다.
map 함수를 통해 UI를 질문 데이터의 객체 묶음 갯수만큼
생성할 수 있게 만들어야 하는데 그렇게 못 해놓은 상태다.
질문이 3개라서 다행이지 5개 이상이었으면
코드가 모니터 밖으로 흘러나왔을 거 같다.
문제는 준비 된 질문이 해당하는 때에 등장하게 만들어야 하는데
반복적으로 UI를 미리 생성을 해놓으면 미리 다 떠있게 되기 때문이다..
레퍼런스를 보면 하나의 질문 작성 후
비동기적으로 다음 질문이 추가가 되는 거 같은데..
한 질문의 버튼을 클릭하는 순간 동적으로 UI를 챡챡 만들어서
할당을 하도록 해야할지..
styled-component의 display 부분에 props를 넘겨
display:none
또는 display:block
이 되도록 해야할지..🤔
데이터 직렬화: object 형태의 데이터를
JSON.stringify()
를 통해 String 형태로 변환하는 것
데이터 역직렬화: String형태의 object를JSON.parse()
를 통해 object 형태로 변환하는 것
회원가입과 로그인 시
A non-serializable value was detected in an action, in the path: 'payload'.
오류 메세지가 자꾸 나타났다. 오류 메세지를 읽어보니
직렬화를 할 수 없는 값이 발견됐다 action 값에서
라는 오류였다.
redux에서는 값을 주고 받을 때
object 형태의 값을 String 형태로 바꾸어서(직렬화를 하여) 주고 받는데
그것을 할 수 없는 값을 보냈다는 것이다.
const { accessToken, uid } = res.user;
const data = { accessToken, uid };
return thunkAPI.fulfillWithValue(data)
그래서 데이터 형태가 중첩 된 객체 속에 배열도 있고 그래서 JSON.strigify()
가 안 되나 하고 위와 같이 필요한 데이터만 따로 추출하여 전달해줬더니 해결되었다.
A non-serializable value was detected in an action 원인과 적합한 해결법
- 내가 사용한 방법은 해결은 되었지만
아래의 링크를 통해 정확한 원인과 해결방법을 알아보도록 하는 것이 좋겠다.
RTK - 직렬화 오류 원인과 해결방법