16

和有什么区别:

var Icon = React.createClass({
  propTypes: {
    name: React.PropTypes.string
  },
  render: function(){
    return (
      <span className={'glyphicon glyphicon-'+this.props.name}></span>
    );
  }
});

var Button = React.createClass({
  propTypes: {
    content: React.PropTypes.element // This one?
    content: React.PropTypes.component // Or this one?
  },
  render: function() {
    return (
       <button>{content}</button>
    );
  }
});

我想用;

<Button content={<Icon name="heart" />} />

在哪种情况下我应该使用另一个?

谢谢

4

1 回答 1

8

我认为你应该像这样渲染 Button:

var Button = React.createClass({
  render: function() {
    return (
       <button>{this.props.children}</button>
    );
  }
});

然后您可以将其与 an<Icon />或其他任何内容(文本...)一起使用:

<Button><Icon name="heart" /></Button>

或者

<Button>anything</Button>

然后正确的proptype取决于你想在你的内部允许什么<Button /> (但我不确定是否React.PropTypes.component存在,它不在文档中:http: //facebook.github.io/react/docs/reusable-components.html

于 2015-03-21T19:15:16.207 回答