안녕하세요! 리액트 이벤트와 파일 업로드 관련해 질문이 있습니다.
<input type="file" multiple ...>
를 통해 다수의 이미지 업로드 기능을 추가하면서 onChange 이벤트 callback함수를 통해 event.target.files
에 접근했는데, 다수의 파일 업로드로 접근할 때마다 가장 최근에 업로드한 파일 정보만을 fileList에 담고 있는걸 발견했습니다.
파일을 업로드해도 계속해서 아래와 같이 console로 확인을 할 수 있었습니다.
FileList {0: File, constructor: Object}
> 0: File
> <constructor>: "FileList"
처음에는 Event Pooling과 관련하여 Synthetic Event의 property 값을 모두 null로 만들어주기 때문에 이후 내가 업로드하는 파일만 접근할 수 있는가 싶었지만, event.target.value
나 다른 dom attribute는 기존 값에 계속 접근할 수 있기 때문에 Event Pooling과는 상관없을 것 같다고 생각하며 머리속에 혼란이 왔습니다.
이와 관련하여 자료를 찾기가 힘들어 이렇게 글을 남깁니다. 혹시 내부에서 어떻게 동작하기에 이렇게 fileList가 계속해서 최신 파일로만 reset 되는지, fileList의 attribute를 직접 건드는 건지 등에 대해 아시는 분이 있으실까요??
미리 감사드립니다.