Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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 访问React组件的所有子组件_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 访问React组件的所有子组件

Javascript 访问React组件的所有子组件,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个react组件,它呈现一个表。表中一列的数据通过另一个组件B呈现,因此是的子级。每当用户单击页面上的任何位置时,我想对执行一些操作。此单击事件侦听器在A中定义。如何从类A内部循环遍历所有s?我的组件结构如下所示: class A extends React.Component { <B/> <B/> <B/> <B/> }; <A>some markup</A> 您需要传递包含所有子组件的

我有一个react组件,它呈现一个表。表中一列的数据通过另一个组件B呈现,因此
的子级。每当用户单击页面上的任何位置时,我想对
执行一些操作。此单击事件侦听器在
A
中定义。如何从类
A
内部循环遍历所有
s
?我的组件结构如下所示:

class A extends React.Component {
   <B/>
   <B/>
   <B/>
   <B/>
};
<A>some markup</A>
您需要传递包含所有子组件的{childrenProps}


您需要传递这个{childrenProps},它包含所有子组件。

所以我找到了答案。我给每个
指定了
ref
,并将其存储在一个数组中:

class A extends React.Component {
  collectRefs = [];
  <B ref={b => {this.collectRefs.push(b)}}/>
  <B ref={b => {this.collectRefs.push(b)}}/>
  <B ref={b => {this.collectRefs.push(b)}}/>

  for(const b of collectRefs) {
    // do stuff
  }
}
A类扩展了React.Component{
collectRefs=[];
{this.collectRefs.push(b)}/>
{this.collectRefs.push(b)}/>
{this.collectRefs.push(b)}/>
用于(收集参考的常数b){
//做事
}
}

所以我想出来了。我给每个
指定了
ref
,并将其存储在一个数组中:

class A extends React.Component {
  collectRefs = [];
  <B ref={b => {this.collectRefs.push(b)}}/>
  <B ref={b => {this.collectRefs.push(b)}}/>
  <B ref={b => {this.collectRefs.push(b)}}/>

  for(const b of collectRefs) {
    // do stuff
  }
}
A类扩展了React.Component{
collectRefs=[];
{this.collectRefs.push(b)}/>
{this.collectRefs.push(b)}/>
{this.collectRefs.push(b)}/>
用于(收集参考的常数b){
//做事
}
}

您能描述一下您想要对组件B执行什么样的操作,以及您是否要向组件B传递任何属性吗?为了添加Bs组件,您是如何做到的?可能您有一个数组或另一个保存数据的结构,并且您正在对其进行迭代,或者您只是显式地执行它?您能否描述您希望对组件B执行哪种操作,以及您是否正在向组件B传递任何属性?为了添加Bs组件,您是如何做到的?也许您有一个数组或另一个保存数据的结构,并且您正在对其进行迭代,或者只是显式地执行它?只要您知道在React中使用ref的缺点。组件变为不受控制的组件,然后道具侦听器停止工作,您将负责整个生命周期。这是我的理解,只要你知道在React中使用ref的缺点。组件变为不受控制的组件,然后道具侦听器停止工作,您将负责整个生命周期。这是我的理解