사실 인풋 자체를 커스텀한다기 보단 꼼수를 쓰는 것이라고 할 수 있다.
인풋 자체도 커스텀할 수 있지만 제한적인 면이 있는 듯 하다.
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 |