[recoil/react] cannot add property 'X', object is not extensible 에러 해결

Aneb·2022년 4월 29일
2

cannot add property 'X', object is not extensible

오늘은 extensible 할 수 없다는 에러메시지를 경험했다.
우선 구글링을해서 해당 에러가 어떨 때 발생하는지 찾아보았다.
https://stackoverflow.com/questions/55567386/react-cannot-add-property-x-object-is-not-extensible

문제의 원인

우선 props를 직접 수정할 수 없는데, 이걸 건드려서 발생하게 된 것 같다.

해결 방법

props를 직접 수정할 수 없으므로, 복사본을 만들어 사용하면된다.
stackoverflow의 답변과 같이 JSON.parse() and JSON.stringify()를 사용해도 되고, 편한 방법으로 복사본을 만들어서 사용하면 된다.

의문점

에러 메시지와 해결방법 자체는 간단하지만 근본적인 원인을 이해하지못했다.
해당 props는 useRecoilState로 불러온 상태값에 담을때만 발생하였고,
useState로 불러온 값에 담을때는 문제가 되지않았다.
아직 recoil 공부가 미숙하여, 해당 과정에서 내가 알지못하는 무엇가가 일어나는것같다.

profile
FE Developer

0개의 댓글