티스토리 뷰
[REACT] input[type="file"] 디자인 커스텀 하는 방법 ,
파일이나 이미지를 업로드 하기 위해서 <input type="file"> 을 사용해야한다.
하지만 <input type="file">의 경우, 기본디자인이 정해져 있고 직접적으로 커스텀을 할 수 없다.
그렇다고 아이에 방법이 없는 것은 아니다.
직접적으로 커스텀 할 수는 없지만, 약간의 편법을 사용해서 간접적으로 디자인을 한 것처럼 보이게 할 수 있다.
과정은 다음과 같다.
1) input 태그를 안보이게 숨긴다.
2) 버튼으로 사용할 태그를 하나 만든다.
3) 버튼을 클릭 했을 때, input태그에 클릭 이벤트를 발생시킨다.
4) 버튼 디자인을 커스텀 해준다.
이게 무슨 말인지 코드를 통해 좀 더 자세히 알아보자.
import React, { useRef } from "react";
const App = () => {
// useRef를 이용해 input태그에 접근한다.
const imageInput = useRef();
// 버튼클릭시 input태그에 클릭이벤트를 걸어준다.
const onCickImageUpload = () => {
imageInput.current.click();
};
// input태그는 display:"none" 을 이용해 안보이게 숨겨준다.
return (
<>
<input type="file" style={{ display: "none" }} ref={imageInput} />
<button onClick={onCickImageUpload}>이미지업로드</button>
</>
);
};
export default App;
이렇게 하면 버튼을 눌렀을 때, input태그를 누르는 효과를 낼 수 있다 !
이제 버튼을 본인의 취향에 맞게 디자인 하면 된다.
'개발일기 > REACT' 카테고리의 다른 글
[React] Redux-saga , 리액트 무한스크롤 구현하기 코드예시. (0) | 2022.03.04 |
---|---|
[React] createGlobalStyle 사용해서 기존CSS 덮어쓰기. (0) | 2022.03.01 |
[REACT] NEXTJS 환경 REDUX 초기셋팅 코드예시 (0) | 2022.02.25 |
[React] React 커스텀 hooks 만들어서 반복되는 코드 줄이기. (0) | 2022.02.24 |
[React] useCallback 사용이유와 코드예시 (0) | 2022.02.23 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- shortid
- 모두CBT
- 전력공학
- 게더타운맵
- 전기기사 필기
- JavaScript
- 실기CBT
- 산안기 합격률
- 전기기사필기
- 전기기사
- gathertown
- 전기산업기사
- TS
- 산업안전기사
- 산업안전기사 실기
- cbt
- fakerjs
- 전자기학
- 전기기사실기CBT
- 게더타운
- zep
- KEC반영
- 전기공사기사
- 개더타운
- nextjs
- dummydata
- 전기기사실기단답
- React
- 전기기기
- TypeScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함