일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- useQueryClient
- ?? #null병합연산자
- BlockFormattingContext
- 부모패딩
- transition
- vite
- alias설정
- QueryClient
- 제어컴포넌트
- twoarrow
- ignore padding
- react
- 문제해결
- 조건부스타일
- BFC
- es6
- tailwindCSS
- parent padding
- CustomHook
- 부모요소의 패딩 무시
- Carousel
- DOM
- 서초구보건소 #무료CPR교육
- 리액트
- 화살표2개
- debouncing
- accordian
- ㅡ
- createPortal
- 함수형프로그래밍
Archives
- Today
- Total
프론트엔드 첫걸음
map으로 순회하는 component마다 ref 를 달 때 본문
순회하는 element에 모두 ref를 달지 않고 상위 element에만 ref를 달아준 뒤에
상위 ref에서 Array.from(상위element.ref).map 을 사용해도 되지만-
map으로 순회하는 component마다 ref를 달고 싶다면 ??
https://stackoverflow.com/questions/63059962/reactjs-map-with-a-ref-to-each-component
1. ref를 사용할 상위 컴포넌트에서 ref 객체 선언
App.jsx
const allRefs = {};
2. ref 사용하는 컴포넌트에 allRefs 전달해 주고
Gallery.jsx
{gallerySideContentData.map((data, i) => (
<GalleryContent
key={i}
odd={i % 2}
data={data}
allRefs={allRefs}
/>
))}
3. 사용하는 컴포넌트 안에서 참조하는 dom에 대한 정보를 객체 (allRefs)에 넣어준다.
GalleryCotent.jsx
const GalleryContent = ({ odd, data, allRefs }) => {
console.log(data);
return (
<article className="gallery" ref={(ref) => (allRefs[data.title] = ref)}>
/* 중략 */
/* data의 구조
data = [{title: "A", desc:"aaaa"}, {title: "B", desc:"bbbb"}, {title: "C", desc:"cccc"} ]
*/
'개발 공부 > React' 카테고리의 다른 글
[칼럼] React 컴포넌트를 커스텀 훅으로 제공하기 (0) | 2023.02.22 |
---|---|
QueryClient 대신 useQueryClient 사용하는 이유 (0) | 2023.02.20 |
리액트 절대경로 사용하기 (0) | 2023.01.05 |
구글로그인 추가 (0) | 2022.10.20 |
성능개선 - useTransition, useDeferredValue (0) | 2022.09.29 |