profile image

L o a d i n g . . .

정렬을 하고있는데 TypeError: Cannot assign to read only property '0' of object '[object Array]' in typescript 이런 오류가 나타났다. 
 
오류내용은 읽기 전용 속성을 사용할 수 없다는 내용 이었다.
 

const filteredList = list
    
console.log(
	filteredList.sort((a, b) => {
      if (a.patName < b.patName) {
        return -1
      }
      if (a.patName > b.patName) {
        return 1
      }
      return 0
    })
)

 
list가 Redux store에서 가져온 속성이었기 때문에 오류가 나는거였다. useSelecter훅은 Redux store의 상태를 읽기 위해 사용되며 해당 상태를 변경시키지 않아 수정할 수 없는 속성이다. 그런데 내가 filteredList에 list를 그대로 할당했기때문에 sort를 사용 시 원본 배열또한 바꾸려 해서 발생한 오류다.
 
 

const filteredList = [...list]
      
console.log(
    filteredList.sort((a, b) => {
      if (a.patName < b.patName) {
        return -1
      }
      if (a.patName > b.patName) {
        return 1
      }
      return 0
    })
)

list의 복사본을 filteredList에 넣어서 해결해주었다.

반응형
복사했습니다!