Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取不带ref的渲染元素维度和属性(元素是react功能组件)_Javascript_Reactjs_Dom_React Dom_React Ref - Fatal编程技术网

Javascript 获取不带ref的渲染元素维度和属性(元素是react功能组件)

Javascript 获取不带ref的渲染元素维度和属性(元素是react功能组件),javascript,reactjs,dom,react-dom,react-ref,Javascript,Reactjs,Dom,React Dom,React Ref,当元素使用功能组件渲染时,我一直在琢磨如何获得DOM渲染的元素信息(例如,offsetHeight) 我知道我不能在功能组件上使用refs,也不能将该组件重写为类组件,因为该组件作为未知子组件(可以是功能组件或类组件)提供 现在,在我的主组件中,我迭代子组件并使用ref属性克隆它们,但是,当子组件是功能组件时,这显然对我没有帮助。我能做些什么来克服这个问题 {React.Children.map(props.children, (c, i) => { newProps.

当元素使用功能组件渲染时,我一直在琢磨如何获得DOM渲染的元素信息(例如,
offsetHeight

我知道我不能在功能组件上使用
ref
s,也不能将该组件重写为类组件,因为该组件作为未知子组件(可以是功能组件或类组件)提供

现在,在我的主组件中,我迭代子组件并使用
ref
属性克隆它们,但是,当子组件是功能组件时,这显然对我没有帮助。我能做些什么来克服这个问题

{React.Children.map(props.children, (c, i) => {
          newProps.ref = (ref) => { refList[i] = ref };
          return React.cloneElement(c, newProps);
        })
} 

“我知道我不能在功能组件上使用ref”-
useRef
?@kinduser据我所知(这对我来说真的不起作用),如果孩子们是功能组件,就不能给他们一个
ref
属性。无法引用它,因为它不返回实例。如果使用forwardRef函数设置,则函数组件子级可以获取ref。最后,您需要将ref转发到DOM元素。