【发布时间】:2020-07-31 09:33:32
【问题描述】:
我想在 React with ES6 中创建和使用这个组件:
<Menu>
<MenuHeader>Hi</MenuHeader>
<MenuItem>Hello</MenuItem>
<MenuFooter>End</MenuFooter>
</Menu>
我已经定义了一个组件来处理这个结构:
export class Menu extends React.Component {
render() {
return (
<div ...>
<div ...>
{HOW TO SELECT HEADER?}
</div>
<div ...>
{HOW TO SELECT ITEM?}
</div>
<div ...>
{HOW TO SELECT FOOTER?}
</div>
</div>
)}
}
在没有转译的开发服务器上运行时,可以遍历子代并通过type.name 选择:
{ React.Children.map(this.props.children, child => { return child.props.type === 'MenuItem' ? <>{ child }</> : '' } ) }
但它在构建后不起作用(由于 uglify/minify 过程)。
例如,Semantic UI React 可以很好地处理它 - 但它使用接口并用 TypeScript 编写,因此我不能将其用作参考。
还有一件事(啊,史蒂夫:):我确实不想使用npm eject。
【问题讨论】:
标签: reactjs webpack ecmascript-6 create-react-app