我有以下代码可以使用:
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
成员函数缺失。
围绕现有组件包装新组件似乎是不必要的开销,可能需要我复制代码,所以我正在寻找更清晰的选项。