Javascript 正在从this.props.children获取值
如何从Javascript 正在从this.props.children获取值,javascript,reactjs,Javascript,Reactjs,如何从this.props.children获取值。记录了相同的输出后,我可以看到对象的值,但它嵌套在两个级别的react类中 React是否提供任何抽象方法来从此对象中选取值?还是我应该把它们循环起来,一个一个地挑出来 用例-我正在用自定义道具制作一个带有可自定义值的通用表。我的目的是检查中是否存在某些属性,并相应地更改表的行为(此行为的范围将在CustomTable类本身中定义) 这是我的定制桌- <CustomTable>{this.props.children}</Cu
this.props.children
获取值。记录了相同的输出后,我可以看到对象的值,但它嵌套在两个级别的react类中
React是否提供任何抽象方法来从此对象中选取值?还是我应该把它们循环起来,一个一个地挑出来
用例-我正在用自定义道具制作一个带有可自定义
值的通用表。我的目的是检查
中是否存在某些属性,并相应地更改表的行为(此行为的范围将在CustomTable
类本身中定义)
这是我的定制桌-
<CustomTable>{this.props.children}</CustomTable>
{this.props.children}
这就是我打电话的方式
<CustomTable>
<thead>....</thead>
<tbody>
<tr>
<td customPropEnabled={true}> xyz</td>
</tr>
</tbody>
</CustomTable>
....
xyz
编辑
刚刚意识到,由于
结构,有两个嵌套级别。一个用于类型
,一个用于类型
。那么,是否有任何方法可以从该对象中提取组件值,或者将其循环是唯一的方法?您可以使用API
Children提供了处理this.props.Children不透明数据结构的实用程序
您可以使用将子项
转换为数组,并递归检查嵌套子项中是否存在td
,且customPropEnabled
属性设置为true
示例
const checkForCustomProp=children=>{
让childArray=React.Children.toArray(Children);
让孩子;
设hasCustomProp=false;
for(设i=0;i
是的,这应该可以。这种操作的开销是多少?我通常的情况是大约50-100行,每行6-7列。递归地使用它可能会导致成倍的操作。这仍然是一个资源密集型操作吗?@aseempadhyay如果不针对您的特定用例进行测量,很难说。我个人认为额外的计算可以忽略不计。我也觉得,如果底层api只是普通循环,那么在每个表中循环300-700次应该不会有问题。@aseempadhyay我更新了答案,这可能会快一点,因为它使用了一个简单的for循环,可以提前返回。