🚨
Uncaught TypeError Cannot assign to read only property '0' of object '[object Array]'
March 28, 2023
let enemies = getState().enemy;
if (enemies) {
enemies.sort((a, b) => {
return b.stats.speed - a.stats.speed;
});
}
이런식으로 배열을 직접 수정하려고 하는 경우 해당 에러가 발생한다.
해결 방법
- 배열을 잘랐다가 다시 합치기
array = array.slice().sort((a, b) => b.stats.speed - a.stats.speed);
- spread로 배열을 복사하여 수정하기
[...enemies].sort((a, b) => {
return b.stats.speed - a.stats.speed;
});
- map 함수를 통해서 재생성
const tempOption = tempProduct.data.option.map((item, index) => {
if (index !== arraynum) {
return item;
}
return {
...item,
[e.target.name]: e.target.value,
};
});
출처
Uncaught TypeError: Cannot assign to read only propery ‘0’ of obejct ‘[object Array]’