작성
·
207
답변 3
1
0
newImages = Images 이렇게 원본 배열을 그대로 넣어버리면 newImages는 Images가 가리키는 값의 위치를 가리키게 됩니다.
그러면 newImages의 요소를 삭제했을 때, 같은 위치를 참조하는 원본 배열(Images)도 변경되어버립니다.
원본인 Images를 직접 잘라버리는 건 불변성 법칙에 위배되기 때문에 newImages라는 변수를 만들고,
spread operator로 Images 배열 안에 있는 요소들을 newImages 배열 안에 그대로 넣어줍니다.
그래서 내용은 같지만 완전히 새로운 배열을 만들어주는 겁니다.
이렇게 완전히 새로운 배열에서 편집을 한 뒤에, setImages로 Images 상태를 변경시켜줍니다.
0
저도 잘모르지만 images는 state라서 setImages로만 변경이 가능한것 같네요
let newImages = Images 이렇게 하면
newImages는 Images에 대한 참조변수가 되기에
let newImages = [...Images] 를 해서
Images를 복사하신것 같습니다.