所以我有一个数据数组,我正在用这些数据生成一个组件列表。我想在每个生成的元素上都有一个 ref 来计算高度。我知道如何用 Class 组件来做,但我想用 React Hooks 来做。
这是一个解释我想要做的事情的例子:
import React, {useState, useCallback} from 'react'
const data = [
{
text: 'test1'
},
{
text: 'test2'
}
]
const Component = () => {
const [height, setHeight] = useState(0);
const measuredRef = useCallback(node => {
if (node !== null) {
setHeight(node.getBoundingClientRect().height);
}
}, []);
return (
<div>
{
data.map((item, index) =>
<div ref={measuredRef} key={index}>
{item.text}
</div>
)
}
</div>
)
}