Я хотел бы создать и использовать этот компонент в React с 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
при работе на сервере dev без транспиляции:
{ React.Children.map(this.props.children, child => { return child.props.type === 'MenuItem' ? <>{ child }</> : '' } ) }
Но это не работает после сборки it (причина uglify / minify process).
Например, Semanti c UI React хорошо справляется с этим - но он использует интерфейсы и написан на TypeScript, поэтому я не могу использовать его в качестве ссылки.
И еще один вещь (ах Стив :): я не хочу использовать npm eject
.