Reactjs 反应-获取组件的第一个节点?

Reactjs 反应-获取组件的第一个节点?,reactjs,Reactjs,如果我有如下组件: const MyComp = () => ( <div> <span> ... </span> <p> ... </p> </div> ) constmycop=()=>( ... ) 我有一个函数,它以MyComp为参数,这个函数是否可以访问它的第一个元素(在这个例子中,它是一个div,但它可以是任何其他元素),这样它就可以向它添加一个属性?不,你不能。如

如果我有如下组件:

const MyComp = () => (
   <div> 
     <span> ... </span>
     <p> ... </p>
   </div>
)
constmycop=()=>(
... 

)

我有一个函数,它以
MyComp
为参数,这个函数是否可以访问它的第一个元素(在这个例子中,它是一个
div
,但它可以是任何其他元素),这样它就可以向它添加一个属性?

不,你不能。如果不传递
prop
或甚至是
ref
,就不能拥有
MyComp
组件并将属性添加到
div
元素

在这些场景中,您应该添加另一个包装器元素并对其应用这些属性

export default function Wrapper({children}) {
  return (
    <div data-value="5">
      {children}
    </div>
  );
}

<Wrapper>
  <MyComp/>
</Wrapper>
导出默认函数包装({children}){
返回(
{儿童}
);
}

您有一个接受返回JSX元素的函数吗?为什么不将所需的属性传递到
MyComp
函数中,并在返回JSX元素之前添加它呢?这是我的repo中需要的行为,它当前包含100个这样的
MyComp
组件。与其重构回购协议中的所有用法并添加新道具,我想创建一个HOC。为什么不以什么方式使用
ref
?@sirwanaffi?您想添加什么属性,请提供完整的示例,您想添加样式吗?做一个包装,你想添加实际的道具吗?你不能。用例是什么?是的,我也是这么想的,只是想确定没有其他方法。。哦,好吧。谢谢