Я столкнулся с подобной проблемой несколько недель назад, и я использовал React.Children
для итерации по вложенным дочерним элементам, переданным компоненту.
Вот вам код, который я сделал:
public renderByKey(childElement, key) {
return React.Children.map(childElement, child => {
if (child != null) {
if (child.props != undefined) {
if (typeof (child.type) !== 'string') {
if (child.props.key != undefined && child.props.key === key) {
return child;
}
}
if (child.props.children != undefined) {
return this.renderByKey(child.props.children,key);
}
}
}
});
}
Я знаю неудобства, связанные с рекурсивностью, но я использовал его с другими реквизитами (не с ключом, как в вашем случае), и отлично работал для меня.