我有以下有效的代码:
let registered = [];
React.Children.forEach(this.props.children, (child) => {
let name = child.type.name;
if (registered.indexOf(name) === -1) {
gLayout.registerComponent(name, createReactClass({
render: () => (child)
}));
registered.push(name);
}
});
但是,我的问题是我是否可以直接提供孩子而不将其包装到新的反应类中。
我尝试用createReactComponent
渲染函数替换它child.type
,React.cloneElement(child, {})
但它们都不起作用,因为registerComponent
(黄金布局框架的)函数会抱怨componentWillUpdate
缺少构造函数或成员函数。
围绕现有组件包装新组件似乎不必要的开销,并且可能需要我复制代码,因此我正在寻找一个更清洁的选项。