일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 이분 검색
- 태그된 유니온
- 무한 스크롤
- autosize
- 결정 알고리즘
- 호이스팅
- Promise
- 공변성
- Jest
- dfs
- 투포인터
- app router
- 인터섹션
- useAppDispatch
- 리터럴 타입
- React
- map
- 타입 좁히기
- 반공변성
- Cypress
- CORS
- recoil
- CI/CD
- tailwind
- TS
- ESlint
- RTK Query
- SSR
- async/await
- webpack
Archives
- Today
- Total
짧은코딩
autosize 본문
반응형
autosize
공식 페이지
https://www.npmjs.com/package/autosize
autosize는 DT라서 TypeScript에서는 TD까지 같이 설치해야된다.
설명
autosize는 textarea 태그에서 사용할 수 있다.
글의 내용이 많아지게 되면 height를 autosize가 알아서 늘려주는 역할을 한다.
코드
import autosize from "autosize";
// ...
const ref = useRef<HTMLTextAreaElement>(null);
useEffect(() => {
if (ref) {
autosize(ref.current as HTMLTextAreaElement);
}
}, []);
// ...
return(
<textarea
ref={ref}
value={explain}
onChange={onChangeInformation}
placeholder={"상품 설명을 입력해주세요."}
/>
);
1. ref에 useRef<HTMLTextAreaElement>(null)을 넣는다.
2. useEffect의 dependency array에 빈 배열을 넣으면 리렌더 될 때 마다 ref가 있는 태그를 체크해준다. 여기서 as HTMLTextAreaElement로 강제 타입 지정을 해야 에러가 안났다.(as로 강제 타입 지정을 하는 것은 타입에 정말 확신이 있을 때만 사용하는 것이 좋다.)
3. 사용할 textarea의 ref에 위에서 선언한 ref를 넣으면된다.
반응형
'리액트' 카테고리의 다른 글
input으로 파일 업로드 구현 (0) | 2022.12.20 |
---|---|
map 함수 사용시 주의할 anti-pattern(key) (0) | 2022.12.20 |
onClick 이벤트에 인자를 주고싶을 때 (0) | 2022.10.07 |
input을 동적으로 만드는 방법 (0) | 2022.09.23 |
React 일정 숫자만큼 화면에 쓰는법 (0) | 2022.09.21 |
Comments