s e o p p o r t . l o g

Today I Learned

new Date() 값을 redux에 넣을 때 A non-serializable value was detected in an action이 뜨는 에러

Seo Ji Won 2024. 2. 26. 19:26

    const dateForOrder = new Date();

리덕스 날짜 state에 날짜데이터를 추가하려고 하니 오류가 났다.

에러를 해석해보면 리덕스 state에 추가된 값 중에 직렬화가 불가능한 값이 감지됐다고 한다.

직렬화 가능한 값(serializable value)이란 JavaScript의 기본 데이터 유형인 문자열, 숫자, 불리언, 배열, 객체 등과 같이 JSON.stringify()를 사용하여 문자열로 변환할 수 있는 값을 의미한다. 

그러나 Date 객체는 직렬화 할 수 없는 값이다.

따라서 toISOString() 메서들르 이용하여 문자열로 바꿔서 넣어주어야 한다.

toISOString() 메서드는 JavaScript의 Date 객체에서 호출할 수 있는 내장 메서드 중 하나로 Date 객체의 날짜와 시간을 ISO 8601 형식의 문자열로 반환해준다.