반응형
useRef를 이용하자!
const Test = props => {
const anchorRef = useRef<HTMLButtonElement>(null);
console.log(anchorRef.current?.offsetWidth) // 컴포넌트의 width
console.log(anchorRef.current?.offsetHeight) // 컴포넌트의 height
return (
<div ref={anchorRef}>hi!</div>
)}
주의
offsetWidth, offsetheight 값은 렌더가 완료된 컴포넌트에서 가져올 수 있다.
useRef로 가져온 dom이 렌더가 완료되기 전에는 undefined 상태일 수 있기에
반드시 옵셔널 체이닝 '?' 을 해주자!
덧붙여서
const Test = props => {
const anchorRef = useRef<HTMLButtonElement>(null);
console.log(anchorRef.current?.offsetWidth || 0) // 컴포넌트의 width
console.log(anchorRef.current?.offsetHeight || 0) // 컴포넌트의 height
return (
<div ref={anchorRef}>hi!</div>
)}
타입 스크립트 등의 이슈로 undefined 값이 허용되지 않을때를 대비해서
|| 연산자를 이용해 offsetWidth, offsetHeight 값이 undefined 일때는 0을 출력하도록 수정해봤다.
변수에 담을때 이런식으로 하면,,, 문제가 있을까,,
조금 더 고민해봐야겠다!
반응형
'📍 Front-End > 🜸 React.js' 카테고리의 다른 글
React :: MUI v4 에서 v5로 버전 업그레이드 하기 (+styled-components) - 1/2 (2) | 2023.02.14 |
---|---|
React i18n :: key에 콜론(:)이 있을때 (0) | 2023.01.26 |
MUI <ClickAwayListener/> 안에 <Select/> 메뉴 클릭하면 닫힐때 (0) | 2022.12.01 |
[React] 리액트에서 input autocoplete 끄기 (0) | 2022.09.15 |
[React] CRA없이 React+ Typescript + Webpack + babel 환경 구성하기 - 2022.06.05 기준 (2) | 2022.06.05 |
댓글