Ответ 1
Я думаю, что вы должны сделать Button следующим образом:
var Button = React.createClass({
render: function() {
return (
<button>{this.props.children}</button>
);
}
});
Затем вы можете использовать его с помощью <Icon />
или всего остального (текст...):
<Button><Icon name="heart" /></Button>
или
<Button>anything</Button>
И тогда правильный proptype зависит от того, что вы хотите разрешить внутри <Button />
(Но я не уверен, что React.PropTypes.component
существует, это не в документации: http://facebook.github.io/react/docs/reusable-components.html)