강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của grabit1156101
grabit1156101

câu hỏi đã được viết

Học qua thực hành chuỗi bài Node, React - Tạo trang web thương mại điện tử [Đổi mới toàn diện]

Images와 [...Images]

Viết

·

303

0

Images는 이미 배열인데 let newImages = Images 라고 하지 않고 let newImages = [...Images] 라고 하는 이유는 뭔가요??

reduxreact웹앱nodejsmongodb

Câu trả lời 3

1

전개연산자는 [], {}, ()여기에서만 사용 가능해서 [...Images]를 하신 것 같습니다 

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를 복사하신것 같습니다.

Hình ảnh hồ sơ của grabit1156101
grabit1156101

câu hỏi đã được viết

Đặt câu hỏi