map 함수 내에서 useRef를 사용하는 방법에 대해 설명드리겠습니다. 일반적으로 map 내에서 직접 useRef를 호출하는 것은 불가능하지만, 다음과 같은 방법으로 구현할 수 있습니다:
- useRef로 배열 생성하기:
import React, { useRef } from 'react';
const Component = () => {
const itemsRef = useRef([]);
return (
<ul>
{['red', 'orange', 'yellow', 'green', 'blue'].map((color, index) => (
<li
key={color}
ref={el => itemsRef.current[index] = el}
>
{color}
</li>
))}
</ul>
);
};
이 방법에서는 useRef를 사용하여 빈 배열을 생성하고, map 함수 내에서 ref 콜백을 통해 각 요소를 배열에 할당합니다.
- ref 콜백 함수 사용하기:
import React, { useRef, useEffect } from 'react';
const Component = () => {
const itemsRef = useRef(new Map());
const addToRefs = (el, id) => {
if (el && !itemsRef.current.has(id)) {
itemsRef.current.set(id, el);
}
};
useEffect(() => {
console.log(itemsRef.current);
}, []);
return (
<ul>
{['red', 'orange', 'yellow', 'green', 'blue'].map((color) => (
<li key={color} ref={(el) => addToRefs(el, color)}>
{color}
</li>
))}
</ul>
);
};
이 방법에서는 Map 객체를 사용하여 각 요소의 참조를 저장합니다. addToRefs 함수를 통해 각 요소를 Map에 추가합니다.
이러한 방법들을 사용하면 map 함수 내에서 각 요소에 대한 ref를 생성하고 관리할 수 있습니다. 이는 동적으로 생성된 요소들에 대해 DOM 조작이 필요한 경우에 유용합니다.
'React' 카테고리의 다른 글
특정 요소 외부 영역 클릭을 감지하는 방법 (0) | 2025.01.19 |
---|---|
리액트 코드 생성 자동화 Plop 특징과 사용 방법 (0) | 2024.01.01 |
React 17 달라진 점, import react (0) | 2021.01.07 |
react covid-19 tracker web site (0) | 2020.12.20 |
리액트 함수형 컴포넌트 리팩토링하기 (0) | 2020.09.30 |
댓글