Здравствуйте! Есть компонент React, который сейчас выводится в 1 экземпляре.
let compexample = useRef();
....
<CompExample ref={compexample} />
....
(внутри естественно имеется forwardRef)
Как теперь его вывести в цикле в зависимости от числового значение в state (кол-во копий) и иметь ref ссылки на все копии?
Пробовал сделать так:
const [numComp, setNumComp] = useState(1);
const compRefs = useRef([]);
// Обновляем refs при изменении numComp
useEffect(() => {
compRefs.current = Array(numComp).fill(null);
}, [numComp]);
// Установка ref для каждого компонента
const setRef = (el, index) => {
compRefs.current[index] = el;
};
const handleClick = useCallback((index) => {
console.log(compRefs.current[index]);
});
Рендер
{[...Array(numComp)].map((_, index) => (
<CompExample ref={(el) => setRef(el, index)} onClick={() => handleClick(index)}/>
))}
в консоли по клику выводится
null