s e o p p o r t . l o g

Today I Learned

파일 탐색기 버튼 input type='file' 커스텀하여 사용하기

Seo Ji Won 2024. 2. 21. 00:53

 

사실 인풋 자체를 커스텀한다기 보단 꼼수를 쓰는 것이라고 할 수 있다.

인풋 자체도 커스텀할 수 있지만 제한적인 면이 있는 듯 하다.

const fileInput = useRef();

// jsx return부분
<input type="file" style={{display: 'none'}} onChange={handleInputChange} ref={fileInput}></input>
<StEditButton onClick={handleEditButtonClick}>edit</StEditButton>

파일 탐색기 input과 눌렀을때 탐색기가 열리게할 버튼(StEditButton)을 만든다.

파일 탐색기 버튼 input에 useRef로 참조를 걸어준다.

 

const handleInputChange = e => {};

  const handleEditButtonClick = () => {
    fileInput.current.click();
  };

그런 다음 내가 만든 StEditButton 버튼이 클릭되면

클릭이벤트 함수로 fileInput 참조 변수에 click 함수를 적용하여 파일 탐색기 버튼이 클릭되게 한다.

 

그럼 프로필 이미지 위의 edit 버튼을 누르면 파일 탐색기 버튼이 열리게된다.

'Today I Learned' 카테고리의 다른 글

2024.02.21 TIL - PATCH, 로컬스토리지  (0) 2024.02.21
개발자 도구로 디버깅하기  (0) 2024.02.21
로그인 상태에 따라 페이지 접근 제한 구현하기  (0) 2024.02.20
2024.02.19 TIL  (0) 2024.02.19
2024.02.16 TIL  (0) 2024.02.16