React:如何使用动态高度获取来自 children 的元素的参考高度?

React: How to get the ref height of an element coming from the children with dynamic height?

我有一个包含一些文本元素的组件。
基于其他一些东西,文本可以是一些单词,也可以是一堵文本墙。从 parent 我需要随时知道 children
内元素的确切高度 我试过使用回调引用但无济于事。我只能得到第一个值,但我需要它来更新

https://codesandbox.io/s/nervous-mendeleev-xf2cg?file=/src/App.js

这是代码示例。


更新:当我直接检查高度时我注意到的一件事是我得到了以前的值(有点像当你使用 setState 但没有意识到它是异步的)

小的时候(身高:~60)显示~100
反之大

one thing that I notice when I check directly the height is that I get the previous value

您仍然可以挽救此解决方案。它正在获取先前的值,因为您正在立即检查高度,但问题是组件未使用新的 words 完成渲染(即,ref 高度仍将 return 先前的高度).

你能做的就是利用useEffect。当组件完成渲染时(在 class 实现中相当于 componentDidUpdate),即开始检查其高度时。

useEffect(() => {
  // the component is done rendering - now you can check for its new height here
}, [words, onClick]);