Jaeilit

TIL 이미지 업로드 미리보기 본문

TIL

TIL 이미지 업로드 미리보기

Jaeilit 2021. 10. 11. 00:37
728x90

DOC 사용

const onChange = (e) => {

    // input type file 비동기적으로 파일의 내용을 읽어들이는 데 사용됨
    const reader = new FileReader()

    // 현재 input 의 files 정보를 onChange 함수와 useRef를 통해 읽어옴
    const file = imgRef.current.files[0]

    // 바이너리 파일을 base64 encode 문자열로 반환
    // 그 외 readAsText() 텍스트로 읽기
    reader.readAsDataURL(file)

    // reader의 이벤트 핸들러 중 하나
    // onloaded 읽기 동작이 성공여부를 떠나 완료되었을 때 발생
    //  읽어온 결과를 result로 반환 받음
    reader.onloadend = () => {
      dispatch(imgActions.preview(reader.result))
    }
  }

https://developer.mozilla.org/ko/docs/Web/API/FileReader

 

FileReader - Web API | MDN

FileReader 객체는 웹 애플리케이션이 비동기적으로 데이터를 읽기 위하여 읽을 파일을 가리키는File 혹은 Blob 객체를 이용해 파일의 내용을(혹은 raw data버퍼로) 읽고 사용자의 컴퓨터에 저장하는

developer.mozilla.org

 

reader.onloaded 읽기 동작 성공여부를 떠나 완료 되었을 때 

dispatch 를 통해 preview 미리보기로 읽어온 결과물을(result)를 보냄

 

액션함수에서 결과물(result)를 받아서 state에 넘겨준다.

 

넘겨준 값은 컴포넌트에서 다시 useSelector를 통해서 가져와서 출력 함.

 

 

728x90

'TIL' 카테고리의 다른 글

TIL axios.delete  (0) 2021.10.13
TIL 정규식 이용하기 입력제한  (0) 2021.10.12
알아보면 좋을 개념들  (0) 2021.10.09
TIL 회원가입 로그인 (fb)  (0) 2021.10.07
TIL 과제1  (0) 2021.10.06