TIL 41. 에러 - uncaught typeerror: cannot assign to read only property '0' of object '[object array]'

isk·2022년 12월 28일
0

TIL

목록 보기
39/122
post-custom-banner
uncaught typeerror: cannot assign to read only property '0' of object '[object array]'

위의 오류는 원본의 배열을 건드릴 경우 발생한다.

const data = useSelector((state) => state.postModule.posts);
data.sort((a, b) => b.clickCounter - a.clickCounter);

sort는 원본의 배열을 변경하는 메서드다.
그렇기 때문에 data를 변경하게 되는데, 저 data는 모듈의 state를 가리키기 때문에 변경할 수 없다.

const data = useSelector((state) => state.postModule.posts);
const bestData = data.slice(0, 6);
bestData.sort((a, b) => b.clickCounter - a.clickCounter);

그래서 위 코드처럼 복사를 한 후 변경을 하면 되는데,
slice메서드는 새로운 배열을 만들어내기 때문에 data를 건드리지 않는다.

post-custom-banner

0개의 댓글