Uncaught TypeError Cannot assign to read only property '0' of object '[object Array]'

송은·2023년 6월 15일
0
let enemies = getState().enemy;
if (enemies) {
  enemies.sort((a, b) => {
    return b.stats.speed - a.stats.speed;
  });
}

이런식으로 배열을 직접 수정하려고 하는 경우 해당 에러가 발생한다.


해결

  1. 배열을 잘랐다가 다시 합치기
array = array.slice().sort((a, b) => b.stats.speed - a.stats.speed);
  1. spread로 배열을 복사하여 수정하기
[...enemies].sort((a, b) => {
  return b.stats.speed - a.stats.speed;
});
  1. map 함수를 통해서 재생성
const tempOption = tempProduct.data.option.map((item, index) => {
  if (index !== arraynum) {
    return item;
  }
  return {
    ...item,
    [e.target.name]: e.target.value,
  };
});



출처

profile
개발자

0개의 댓글